/* ==========================================================
   OTSI Portal Login page — Ronin blocks shared stylesheet
   Loaded by every pms-ronin-portallogin-* block. Relies on
   the shared design tokens defined in ronin-shell.css
   (.ronin-page{ --navy-950, --gold, --blue, --green, --purple,
   --orange, --ink, --gray-200, ... }).
   ========================================================== */
.ronin-portallogin{ --teal:#1f8f8a; --teal-tint:#e8f5f4; }

/* ---------- Hero ---------- */
.plh{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.plh__left{ position:relative; overflow:hidden; background:var(--navy-950); color:#fff; padding:34px 34px 28px; display:flex; flex-direction:column; }
.plh__glow{ position:absolute; inset:0; background:radial-gradient(420px 320px at 65% 55%, rgba(63,126,232,.22), transparent 70%); pointer-events:none; }
.plh__eyebrow-sub{ position:relative; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#93a4c2; margin-bottom:6px; }
.plh__eyebrow{ position:relative; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.plh__title{ position:relative; font-size:26px; line-height:1.22; font-weight:800; color:#fff; margin-bottom:12px; max-width:420px; }
.plh__desc{ position:relative; font-size:13.5px; line-height:1.6; color:#b7c2d9; max-width:400px; margin-bottom:18px; }
.plh__diagram{ position:relative; width:100%; max-width:340px; margin:0 auto; }
.plh__diagram-svg{ width:100%; height:auto; }
.plh__line{ stroke-width:1.6; fill:none; }
.plh__line--solid{ stroke:var(--blue-ring); }
.plh__line--dot{ stroke:var(--gold); stroke-dasharray:3 4; }
.plh__node circle{ fill:var(--navy-800); stroke:var(--blue-ring); stroke-width:1.4; }
.plh__node--gateway circle{ fill:var(--navy-800); stroke:var(--blue-ring); stroke-width:2; filter:drop-shadow(0 0 10px rgba(63,126,232,.5)); }
.plh__gateway-text{ font-size:9.5px; font-weight:700; fill:#fff; }
.plh__node-label{ font-size:8.5px; fill:#cbd5e6; font-weight:600; }
.plh__node-icon{ width:20px; height:20px; display:flex; }
.plh__node-icon svg{ width:100%; height:100%; }
.plh__node-icon--blue{ color:#7fb0ff; } .plh__node-icon--green{ color:#7fe0b8; } .plh__node-icon--purple{ color:#c3aef2; } .plh__node-icon--orange{ color:#f5c07f; } .plh__node-icon--teal{ color:#7fd4ce; } .plh__node-icon--white{ color:#fff; }
.plh__strip{ position:relative; margin-top:auto; padding-top:16px; display:grid; grid-template-columns:repeat(3,1fr); border:1px solid rgba(255,255,255,.16); border-radius:10px; overflow:hidden; }
.plh__strip-cell{ display:flex; align-items:center; gap:8px; padding:10px 12px; font-size:11px; line-height:1.4; color:#dbe4f3; border-right:1px solid rgba(255,255,255,.14); }
.plh__strip-cell:last-child{ border-right:none; }
.plh__strip-icon{ width:16px; height:16px; flex-shrink:0; color:var(--green); }
.plh__strip-icon svg{ width:100%; height:100%; }

.plh__right{ background:var(--bg-tint); display:flex; align-items:center; justify-content:center; padding:28px 24px; }
.plh__card{ width:100%; max-width:400px; background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-lg); padding:22px 22px 20px; box-shadow:var(--shadow-card); }
.plh__card-title{ font-size:15px; font-weight:800; color:var(--ink); margin-bottom:14px; }
.plh__signedin-copy{ font-size:13px; color:var(--ink-soft); margin-bottom:14px; }

.plh__roletabs{ display:grid; grid-template-columns:repeat(5,1fr); gap:4px; margin-bottom:16px; }
.plh__roletab{ display:flex; flex-direction:column; align-items:center; gap:4px; padding:8px 2px; background:transparent; border:none; border-bottom:2px solid transparent; cursor:pointer; font-size:10.5px; font-weight:600; color:var(--ink-soft); }
.plh__roletab-icon{ width:18px; height:18px; color:var(--ink-soft); }
.plh__roletab-icon svg{ width:100%; height:100%; }
.plh__roletab.is-active{ color:var(--ink); }
.plh__roletab--blue.is-active{ border-color:var(--blue-ring); color:var(--blue-ring); } .plh__roletab--blue.is-active .plh__roletab-icon{ color:var(--blue-ring); }
.plh__roletab--green.is-active{ border-color:var(--green); color:var(--green); } .plh__roletab--green.is-active .plh__roletab-icon{ color:var(--green); }
.plh__roletab--purple.is-active{ border-color:var(--purple); color:var(--purple); } .plh__roletab--purple.is-active .plh__roletab-icon{ color:var(--purple); }
.plh__roletab--orange.is-active{ border-color:var(--orange); color:var(--orange); } .plh__roletab--orange.is-active .plh__roletab-icon{ color:var(--orange); }
.plh__roletab--teal.is-active{ border-color:var(--teal); color:var(--teal); } .plh__roletab--teal.is-active .plh__roletab-icon{ color:var(--teal); }

.plh__form{ display:flex; flex-direction:column; }
.plh__label{ font-size:11px; font-weight:700; color:var(--ink); margin:10px 0 5px; }
.plh__input{ width:100%; padding:10px 12px; border:1px solid var(--gray-200); border-radius:8px; font-size:13px; color:var(--ink); background:#fff; }
.plh__input:focus{ outline:2px solid var(--blue-ring); outline-offset:1px; }
.plh__pwd-row{ display:flex; align-items:center; gap:10px; }
.plh__pwd-wrap{ position:relative; flex:1; min-width:0; }
.plh__pwd-eye{ position:absolute; right:10px; top:50%; transform:translateY(-50%); width:18px; height:18px; padding:0; background:none; border:none; cursor:pointer; color:var(--gray-500); }
.plh__pwd-eye svg{ width:100%; height:100%; }
.plh__check{ display:flex; align-items:center; gap:7px; font-size:12px; color:var(--ink-soft); margin-top:9px; cursor:pointer; }
.plh__check--inline{ margin-top:0; flex-shrink:0; white-space:nowrap; }
.plh__check input{ width:14px; height:14px; }
.plh__submit,a.plh__submit:link,a.plh__submit:visited{ width:100%; margin-top:16px; padding:11px; border:none; border-radius:8px; background:var(--gold); color:var(--navy-950); font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; text-align:center; text-decoration:none; }
.plh__submit svg{ width:15px; height:15px; }
.plh__submit:hover{ background:#f4bd5c; }
.plh__forgot{ display:block; text-align:center; margin-top:12px; font-size:12px; color:var(--blue-ring); font-weight:600; }
.plh__divider{ display:flex; align-items:center; gap:10px; margin:16px 0; font-size:11px; color:var(--gray-500); }
.plh__divider::before,.plh__divider::after{ content:""; flex:1; height:1px; background:var(--gray-200); }
.plh__verify-btn,a.plh__verify-btn:link,a.plh__verify-btn:visited{ width:100%; margin-top:10px; display:flex; align-items:center; justify-content:center; gap:8px; padding:10px; border:1.4px solid var(--blue-ring); border-radius:8px; background:#fff; color:var(--blue-ring); font-size:12.5px; font-weight:700; text-align:center; text-decoration:none; }
.plh__verify-btn:hover{ background:var(--blue-tint); }
.plh__verify-btn svg{ width:15px; height:15px; }
.plh__note{ text-align:center; font-size:11px; color:var(--gray-500); margin-top:12px; }
.plh__firsttime{ text-align:left; font-size:12.5px; color:var(--ink-soft); margin-top:14px; }
.plh__firsttime a{ color:var(--blue-ring); font-weight:700; }
.plh__error{ background:#fdecec; border:1px solid #f3b8b8; color:#a12727; font-size:12px; padding:8px 10px; border-radius:6px; margin-bottom:10px; }

@media (max-width:900px){
  .plh{ grid-template-columns:1fr; }
  .plh__title{ max-width:none; }
  .plh__desc{ max-width:none; }
}

/* ---------- Roles + Router ---------- */
.plr{ padding:44px 0 8px; background:#fff; }
.plr__router-section{ padding:28px 0 44px; background:var(--bg-tint); }
.plr__heading{ font-size:13px; font-weight:800; letter-spacing:.04em; color:var(--ink); margin-bottom:6px; }
.plr__sub{ font-size:13px; color:var(--ink-soft); max-width:760px; margin-bottom:22px; }
.plr__grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; align-items:stretch; }
.plr__card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-md); padding:16px; border-top:3px solid transparent; }
.plr__card--blue{ border-top-color:var(--blue-ring); } .plr__card--blue .plr__card-icon{ color:var(--blue-ring); }
.plr__card--green{ border-top-color:var(--green); } .plr__card--green .plr__card-icon{ color:var(--green); }
.plr__card--purple{ border-top-color:var(--purple); } .plr__card--purple .plr__card-icon{ color:var(--purple); }
.plr__card--orange{ border-top-color:var(--orange); } .plr__card--orange .plr__card-icon{ color:var(--orange); }
.plr__card--teal{ border-top-color:var(--teal); } .plr__card--teal .plr__card-icon{ color:var(--teal); }
.plr__card-head{ display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.plr__card-icon{ width:20px; height:20px; flex-shrink:0; }
.plr__card-icon svg{ width:100%; height:100%; }
.plr__card strong{ font-size:13.5px; color:var(--ink); }
.plr__card p{ font-size:11.5px; line-height:1.5; color:var(--ink-soft); margin-bottom:4px; }
.plr__card-btn{ margin-top:auto; width:100%; height:34px; background:#fff; border:1.4px solid var(--blue-ring); border-radius:8px; font-size:12px; font-weight:700; color:var(--blue-ring); text-align:center; cursor:pointer; }
.plr__card-btn:hover{ background:var(--blue-tint); }

.plr__router-grid{ display:grid; grid-template-columns:2.1fr 1fr; gap:16px; align-items:start; }
.plr__router-card,.plr__route-card{ background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-md); padding:18px; }
.plr__router-fields{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.plr__router-fields .plr__field:nth-child(4){ grid-column:1 / span 1; }
.plr__field{ display:flex; flex-direction:column; }
.plr__label{ font-size:11px; font-weight:700; color:var(--ink); margin-bottom:5px; }
.plr__select{ padding:9px 10px; border:1px solid var(--gray-200); border-radius:7px; font-size:12.5px; color:var(--ink); background:#fff; }
.plr__router-actions{ display:flex; align-items:center; gap:14px; margin-top:16px; flex-wrap:wrap; }
.plr__router-btn{ display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border:none; border-radius:8px; background:var(--gold); color:var(--navy-950); font-size:12.5px; font-weight:700; cursor:pointer; }
.plr__router-btn svg{ width:14px; height:14px; }
.plr__router-note{ font-size:11px; color:var(--gray-500); }
.plr__route-title{ font-size:13px; font-weight:800; color:var(--ink); margin-bottom:4px; }
.plr__route-status{ font-size:12px; color:var(--gray-500); margin-bottom:12px; }
.plr__route-row{ display:flex; flex-direction:column; gap:3px; padding:9px 0; border-bottom:1px solid var(--gray-200); }
.plr__route-row:last-child{ border-bottom:none; }
.plr__route-label{ font-size:10.5px; font-weight:700; color:var(--gray-500); text-transform:uppercase; letter-spacing:.03em; }
.plr__route-value{ font-size:12.5px; color:var(--ink); font-weight:600; }

/* ---------- First-Time Access Request ---------- */
.plq{ padding:8px 0 48px; background:var(--bg-tint); }
.plq__grid{ display:grid; grid-template-columns:2.1fr 1fr; gap:16px; align-items:start; margin-top:6px; }
.plq__form-card{ background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-md); padding:18px; }
.plq__form{ display:flex; flex-direction:column; gap:2px; }
.plq__row{ display:grid; gap:12px; margin-bottom:8px; }
.plq__row--4{ grid-template-columns:repeat(4,1fr); }
.plq__row--2{ grid-template-columns:repeat(2,1fr); }
.plq__field{ display:flex; flex-direction:column; }
.plq__textarea{ width:100%; padding:9px 10px; border:1px solid var(--gray-200); border-radius:7px; font-size:12.5px; color:var(--ink); font-family:inherit; resize:vertical; }
.plq__upload{ display:flex; align-items:center; align-self:flex-start; width:fit-content; gap:8px; padding:9px 14px; border:1px dashed var(--gray-200); border-radius:7px; font-size:12px; color:var(--ink-soft); cursor:pointer; }
.plq__upload svg{ width:16px; height:16px; flex-shrink:0; }
.plq__timeline-card{ background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-md); padding:18px; position:relative; }
.plq__tl-item{ display:flex; gap:12px; position:relative; padding-bottom:20px; }
.plq__tl-item::before{ content:""; position:absolute; left:11px; top:24px; bottom:-4px; width:1px; background:var(--gray-200); }
.plq__tl-item--final::before{ display:none; }
.plq__tl-dot{ flex-shrink:0; width:23px; height:23px; padding:5px; box-sizing:border-box; border-radius:50%; border:1.5px solid var(--blue-ring); color:var(--blue-ring); background:#fff; }
.plq__tl-dot svg{ width:100%; height:100%; }
.plq__tl-item strong{ display:block; font-size:12.5px; color:var(--ink); margin-bottom:2px; }
.plq__tl-item p{ font-size:11.5px; color:var(--ink-soft); line-height:1.4; }
.plq__tl-note{ font-size:10.5px; color:var(--gray-500); border-top:1px solid var(--gray-200); padding-top:12px; margin-top:4px; }

@media (max-width:900px){
  .plr__grid{ grid-template-columns:repeat(2,1fr); }
  .plr__router-grid{ grid-template-columns:1fr; }
  .plr__router-fields{ grid-template-columns:1fr; }
  .plq__grid{ grid-template-columns:1fr; }
  .plq__row--4,.plq__row--2{ grid-template-columns:1fr; }
}

/* ---------- Access Destination Map (flowchart) ---------- */
.pld{ padding:8px 0 44px; background:#fff; }
.pld__grid{ display:grid; grid-template-columns:1.3fr 0.5fr 1.5fr 1.7fr; gap:10px; margin-top:6px; }
.pld__col{ display:flex; flex-direction:column; gap:10px; min-width:0; position:relative; }
.pld__spacer{ height:20px; flex-shrink:0; }
.pld__col--roles::before{ content:""; position:absolute; right:-10px; top:53px; width:1.5px; height:224px; background:#94a3b8; }
.pld__role-row{ display:flex; align-items:center; gap:8px; height:46px; }
.pld__role{ position:relative; flex:1; min-width:0; display:flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--gray-200); border-radius:8px; padding:9px 10px; font-size:11.5px; font-weight:700; color:var(--ink); height:46px; z-index:1; }
.pld__role-arrow{ position:relative; width:10px; height:1.5px; flex-shrink:0; background:#94a3b8; }
.pld__role-arrow svg{ display:none; }
.pld__role-icon{ width:18px; height:18px; flex-shrink:0; }
.pld__role-icon svg{ width:100%; height:100%; }
.pld__role--blue .pld__role-icon{ color:var(--blue-ring); } .pld__role--green .pld__role-icon{ color:var(--green); } .pld__role--purple .pld__role-icon{ color:var(--purple); } .pld__role--orange .pld__role-icon{ color:var(--orange); } .pld__role--teal .pld__role-icon{ color:var(--teal); }
.pld__col--gateway::before{ content:""; position:absolute; left:0; top:165px; width:21px; height:1.5px; background:#94a3b8; }
.pld__col--gateway::after{ content:""; position:absolute; right:0; top:165px; width:27px; height:1.5px; background:#94a3b8; }
.pld__gateway{ position:absolute; top:165px; left:50%; transform:translate(-50%,-50%); width:56px; height:56px; border-radius:50%; background:#03173F; color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:8.5px; font-weight:600; border:1px solid #1c3566; z-index:1; }
.pld__gateway-arrow{ position:absolute; left:21px; top:165px; width:0; height:0; border-top:4px solid transparent; border-bottom:4px solid transparent; border-left:6px solid #94a3b8; transform:translateY(-50%); z-index:1; }
.pld__gateway-arrow svg{ display:none; }
.pld__gateway-lock{ width:13px; height:13px; margin-top:3px; }
.pld__gateway-lock svg{ width:100%; height:100%; }
.pld__verify-heads{ display:flex; justify-content:space-around; font-size:9.5px; font-weight:700; color:var(--gray-500); text-transform:uppercase; letter-spacing:.02em; height:20px; align-items:center; }
.pld__col--verify::before{ content:""; position:absolute; left:-10px; top:53px; width:1.5px; height:224px; background:#94a3b8; }
.pld__verify-row{ position:relative; display:flex; align-items:center; gap:3px; height:46px; }
.pld__verify-arrow{ position:relative; width:0; height:0; flex-shrink:0; border-top:4px solid transparent; border-bottom:4px solid transparent; border-left:6px solid #94a3b8; }
.pld__verify-arrow::before{ content:""; position:absolute; left:-7px; top:0; width:7px; height:1.5px; background:#94a3b8; transform:translateY(-50%); }
.pld__verify-arrow svg{ display:none; }
.pld__verify-icons{ position:relative; flex:1; display:flex; justify-content:space-around; align-items:center; }
.pld__verify-icons::before{ content:""; position:absolute; left:16%; right:16%; top:50%; border-top:1.5px dashed #94a3b8; z-index:0; }
.pld__verify-icon{ position:relative; z-index:1; width:24px; height:24px; padding:4px; box-sizing:border-box; color:var(--ink-soft); background:#fff; border-radius:50%; border:1px solid var(--gray-200); }
.pld__verify-icon svg{ width:100%; height:100%; }
.pld__dest{ display:flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--gray-200); border-radius:8px; padding:8px 10px; height:46px; }
.pld__dest-arrow{ width:12px; height:12px; flex-shrink:0; color:var(--gray-500); }
.pld__dest-arrow svg{ width:100%; height:100%; }
.pld__dest-icon{ width:18px; height:18px; flex-shrink:0; }
.pld__dest-icon svg{ width:100%; height:100%; }
.pld__dest strong{ display:block; font-size:11.5px; color:var(--ink); line-height:1.2; }
.pld__dest em{ display:block; font-size:10px; font-style:normal; color:var(--ink-soft); }
.pld__dest--blue .pld__dest-icon{ color:var(--blue-ring); } .pld__dest--green .pld__dest-icon{ color:var(--green); } .pld__dest--purple .pld__dest-icon{ color:var(--purple); } .pld__dest--orange .pld__dest-icon{ color:var(--orange); } .pld__dest--teal .pld__dest-icon{ color:var(--teal); }
.pld__note{ margin-top:16px; text-align:center; font-size:11.5px; color:var(--ink-soft); border:1px solid var(--gray-200); border-radius:8px; padding:10px; }

@media (max-width:900px){
  .pld__grid{ grid-template-columns:1fr; }
  .pld__col--verify{ display:none; }
  .pld__col--roles::before, .pld__role-arrow, .pld__gateway-arrow, .pld__col--gateway::after{ display:none; }
}

/* ---------- Dedicated Login Routes + Account Recovery Centre ---------- */
.plrt{ padding:8px 0 44px; background:var(--bg-tint); }
.plrt__grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
.plrt__routecards{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:6px; }
.plrt__routecard{ border-radius:var(--radius-md); padding:16px; color:#fff; display:flex; flex-direction:column; }
.plrt__routecard--blue{ background:linear-gradient(145deg,var(--blue-ring),#2a52a8); }
.plrt__routecard--green{ background:linear-gradient(145deg,var(--green),#166b45); }
.plrt__routecard-icon{ display:flex; gap:6px; margin-bottom:8px; }
.plrt__routecard-icon svg{ width:20px; height:20px; }
.plrt__routecard strong{ font-size:13px; margin-bottom:4px; }
.plrt__routecard p{ font-size:11.5px; opacity:.9; margin-bottom:14px; flex:1; }
.plrt__routecard a{ display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; background:rgba(255,255,255,.16); padding:8px 12px; border-radius:7px; align-self:flex-start; }
.plrt__routecard a svg{ width:12px; height:12px; }

.plrt__recovery-card{ background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-md); padding:18px; margin-top:6px; }
.plrt__rtabs{ display:flex; gap:4px; border-bottom:1px solid var(--gray-200); margin-bottom:16px; }
.plrt__rtab{ background:none; border:none; border-bottom:2px solid transparent; padding:8px 4px; font-size:11.5px; font-weight:600; color:var(--ink-soft); cursor:pointer; }
.plrt__rtab.is-active{ color:var(--blue-ring); border-color:var(--blue-ring); }
.plrt__send-btn{ width:100%; margin-top:14px; padding:10px; border:none; border-radius:8px; background:var(--gold); color:var(--navy-950); font-size:12.5px; font-weight:700; display:flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; }
.plrt__send-btn svg{ width:14px; height:14px; }
.plrt__resend-btn{ width:100%; margin-top:8px; padding:9px; border:1px solid var(--gray-200); border-radius:8px; background:#fff; color:var(--ink-soft); font-size:12px; font-weight:600; cursor:pointer; }
.plrt__note{ font-size:11px; color:var(--gray-500); margin-top:10px; }
.plrt__channels{ display:flex; gap:8px; margin-bottom:12px; }
.plrt__channel{ flex:1; display:flex; align-items:center; justify-content:center; gap:6px; padding:9px 8px; border:1.4px solid var(--gray-200); border-radius:8px; font-size:11.5px; font-weight:600; color:var(--ink-soft); cursor:pointer; text-align:center; }
.plrt__channel input{ display:none; }
.plrt__channel.is-active{ border-color:var(--blue-ring); color:var(--blue-ring); background:var(--blue-tint); }
.plrt__channel--disabled{ cursor:not-allowed; opacity:.55; }
.plrt__channel--disabled em{ display:block; font-style:normal; font-size:9px; color:var(--gray-500); font-weight:500; }
.plrt__note--warn{ color:#a12727; }

@media (max-width:900px){
  .plrt__grid{ grid-template-columns:1fr; }
  .plrt__routecards{ grid-template-columns:1fr; }
}

/* ---------- Permission Boundaries + Public/Protected ---------- */
.plb{ padding:8px 0 44px; background:#fff; }
.plb__row{ display:grid; grid-template-columns:1.7fr 1.15fr 1.15fr; gap:20px; align-items:start; margin-top:6px; }
.plb__col{ min-width:0; }
.plb__table-wrap{ overflow-x:auto; border:1px solid var(--gray-200); border-radius:var(--radius-md); margin-top:6px; }
.plb__table{ width:100%; border-collapse:collapse; font-size:10px; }
.plb__table th, .plb__table td{ padding:7px 8px; text-align:left; border-bottom:1px solid var(--gray-200); white-space:normal; }
.plb__table thead th{ background:var(--bg-tint); font-weight:800; color:var(--ink); font-size:9px; text-transform:uppercase; letter-spacing:.02em; }
.plb__table tbody th{ font-weight:700; color:var(--ink); background:var(--bg-tint); }
.plb__table tbody td{ color:var(--ink-soft); }
.plb__table tbody tr:last-child th, .plb__table tbody tr:last-child td{ border-bottom:none; }

.plb__public-card{ border:1px solid var(--gray-200); border-radius:var(--radius-md); padding:16px; margin-top:6px; background:#fff; }
.plb__public-row{ display:flex; gap:14px; padding:12px 0; border-bottom:1px solid var(--gray-200); }
.plb__public-row:last-of-type{ border-bottom:none; }
.plb__public-icon{ width:26px; height:26px; flex-shrink:0; }
.plb__public-icon svg{ width:100%; height:100%; }
.plb__public-icon--blue{ color:var(--blue-ring); } .plb__public-icon--teal{ color:var(--teal); } .plb__public-icon--red{ color:#c0392b; }
.plb__public-row strong{ display:block; font-size:12.5px; color:var(--ink); margin-bottom:3px; }
.plb__public-row p{ font-size:11.5px; color:var(--ink-soft); line-height:1.5; }
.plb__public-note{ margin-top:12px; padding-top:12px; border-top:1px solid var(--gray-200); font-size:11px; color:var(--gray-500); text-align:center; }

/* ---------- Security Checklist + Portal Access Support ---------- */
.pls{ padding:8px 0 44px; background:var(--bg-tint); }
.pls__checklist{ display:flex; flex-direction:column; gap:8px; margin-top:6px; }
.pls__check-row{ display:flex; align-items:flex-start; gap:9px; font-size:11.5px; line-height:1.4; color:var(--ink); background:#fff; border:1px solid var(--gray-200); border-radius:8px; padding:9px 10px; }
.pls__check-icon{ width:16px; height:16px; flex-shrink:0; margin-top:1px; }
.pls__check-icon svg{ width:100%; height:100%; }
.plq__row--3{ grid-template-columns:repeat(3,1fr); }

@media (max-width:1000px){
  .plb__row{ grid-template-columns:1fr; }
}

@media (max-width:900px){
  .pls__checklist{ grid-template-columns:1fr; }
  .plq__row--3{ grid-template-columns:1fr; }
}

/* ---------- Transparent Empty State + FAQ ---------- */
.ple{ padding:8px 0 44px; background:#fff; }
.ple__statement{ font-size:15px; font-weight:800; color:var(--ink); margin:6px 0 14px; }
.ple__table-wrap{ border:1px solid var(--gray-200); border-radius:var(--radius-md); overflow:hidden; }
.ple__table-wrap .plb__table{ margin:0; }
.ple__table-wrap .plb__table th{ border-bottom:1px solid var(--gray-200); }
.ple__empty-body{ display:flex; flex-direction:column; align-items:center; text-align:center; padding:40px 20px; }
.ple__empty-icon{ width:58px; height:58px; border-radius:50%; background:var(--gray-100); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.ple__empty-icon svg{ width:26px; height:26px; }
.ple__empty-body strong{ font-size:13.5px; color:var(--ink); margin-bottom:8px; }
.ple__empty-body p{ font-size:12px; color:var(--gray-500); line-height:1.6; max-width:420px; }

.ple__faq-grid{ display:grid; grid-template-columns:repeat(4,1fr); align-items:start; gap:10px; margin-top:6px; }
.ple__faq-item{ align-self:start; background:#fff; border:1px solid var(--gray-200); border-radius:8px; overflow:hidden; }
.ple__faq-question{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 14px; background:none; border:none; text-align:left; font-size:12.5px; font-weight:700; color:var(--ink); cursor:pointer; }
.ple__faq-chevron{ width:14px; height:14px; flex-shrink:0; transition:transform .18s ease; }
.ple__faq-chevron svg{ width:100%; height:100%; }
.ple__faq-answer{ display:none; padding:0 14px 14px; }
.ple__faq-answer p{ font-size:12px; color:var(--ink-soft); line-height:1.6; }

@media (max-width:900px){
  .ple__faq-grid{ grid-template-columns:1fr; }
}

/* ---------- Closing CTA banner ---------- */
.plc{ position:relative; overflow:hidden; background:var(--navy-950); padding:56px 24px; display:flex; align-items:center; justify-content:center; min-height:242px; }
.plc__glow{ position:absolute; inset:0; background:radial-gradient(600px 300px at 50% 50%, rgba(63,126,232,.16), transparent 70%); pointer-events:none; }
.plc__inner{ position:relative; z-index:2; text-align:center; max-width:520px; }
.plc__inner h2{ color:#fff; font-size:20px; font-weight:800; margin-bottom:10px; line-height:1.3; }
.plc__inner p{ color:#b7c2d9; font-size:13px; margin-bottom:22px; }
.plc__buttons{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.plc__btn-gold{ display:inline-flex; align-items:center; gap:8px; padding:11px 20px; border-radius:8px; background:var(--gold); color:var(--navy-950); font-size:13px; font-weight:700; }
.plc__btn-gold svg{ width:15px; height:15px; }
.plc__btn-outline{ display:inline-flex; align-items:center; padding:11px 20px; border-radius:8px; border:1.4px solid rgba(255,255,255,.4); color:#fff; font-size:13px; font-weight:700; }
.plc__net{ position:absolute; top:0; height:100%; z-index:1; }
.plc__net--left{ left:0; width:300px; }
.plc__net--right{ right:0; width:400px; }
.plc__dot-line{ stroke:var(--gold); stroke-width:1.4; stroke-dasharray:3 4; }
.plc__lock-node{ fill:var(--navy-800); stroke:var(--blue-ring); stroke-width:1.6; filter:drop-shadow(0 0 8px rgba(63,126,232,.5)); }
.plc__lock-icon{ width:100%; height:100%; }
.plc__lock-icon svg{ width:100%; height:100%; stroke:#fff; }
.plc__user-icon{ width:100%; height:100%; }
.plc__user-icon svg{ width:100%; height:100%; }
.plc__btn-chevron{ width:11px; height:11px; display:inline-flex; margin-left:2px; }
.plc__btn-chevron svg{ width:100%; height:100%; }
.plc__user-node{ fill:var(--navy-800); stroke:var(--blue-ring); stroke-width:1.4; }

@media (max-width:900px){
  .plc{ padding:40px 20px; }
  .plc__net{ display:none; }
}

/* ── Portal Home hub ─────────────────────────────────────────────────── */
.pth__section{ padding:56px 20px; display:flex; justify-content:center; }
.pth__inner{ width:100%; max-width:480px; }
.pth__card{ background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-lg); padding:26px 26px 22px; box-shadow:var(--shadow-card); }
.pth__card--empty{ text-align:center; padding:40px 26px; }
.pth__card-head{ display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.pth__card-icon{ flex:0 0 auto; width:44px; height:44px; border-radius:50%; background:var(--navy-950); color:var(--gold); display:flex; align-items:center; justify-content:center; }
.pth__card-icon svg{ width:22px; height:22px; }
.pth__card-eyebrow{ font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--blue-ring); margin-bottom:2px; }
.pth__card-title{ font-size:19px; font-weight:800; color:var(--ink); margin:0; }
.pth__card-body{ display:flex; flex-direction:column; gap:10px; padding:14px 0; border-top:1px solid var(--gray-200); border-bottom:1px solid var(--gray-200); margin-bottom:16px; }
.pth__field{ display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:13px; }
.pth__field span{ color:var(--ink-soft); }
.pth__field strong{ color:var(--ink); font-weight:700; text-align:right; }
.pth__note{ font-size:12px; color:var(--ink-soft); line-height:1.5; margin:0 0 16px; }
.pth__btn,a.pth__btn:link,a.pth__btn:visited{ width:100%; display:flex; align-items:center; justify-content:center; gap:8px; padding:11px; border:none; border-radius:8px; background:var(--gold); color:var(--navy-950); font-size:13px; font-weight:700; cursor:pointer; text-align:center; text-decoration:none; }
.pth__btn--outline,a.pth__btn--outline:link,a.pth__btn--outline:visited{ background:#fff; border:1.4px solid var(--blue-ring); color:var(--blue-ring); margin-bottom:10px; }
.pth__signout{ background:#fff; border:1.4px solid var(--gray-200); color:var(--ink); margin-top:10px; }
.pth__signout svg{ width:15px; height:15px; }
