/* ==========================================================
   OTSI Documents & Forms page — Ronin blocks shared stylesheet
   Loaded by every pms-ronin-docforms-* block.
   ========================================================== */

/* ---------- Hero (dark navy, 2-col) ---------- */
.dfh{ background:var(--navy-950); padding:52px 0; position:relative; overflow:hidden; }
.dfh::before{ content:""; position:absolute; top:-120px; left:-80px; width:600px; height:500px; background:radial-gradient(circle, rgba(63,126,232,.16), transparent 70%); pointer-events:none; }
.dfh__grid{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:center; }
.dfh__eyebrow{ font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gold); margin-bottom:14px; }
.dfh__title{ font-size:29px; line-height:1.22; font-weight:800; color:#fff; margin:0 0 14px; }
.dfh__desc{ font-size:13px; line-height:1.65; color:#b7c2d9; max-width:440px; margin:0 0 22px; }
.dfh__ctas{ display:flex; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.dfh__btn-primary,a.dfh__btn-primary:link,a.dfh__btn-primary:visited{ display:inline-flex; align-items:center; gap:8px; padding:12px 20px; border-radius:8px; background:var(--gold); color:var(--navy-950); font-size:13px; font-weight:700; text-decoration:none; }
.dfh__btn-primary:hover{ background:#f4bd5c; }
.dfh__btn-secondary,a.dfh__btn-secondary:link,a.dfh__btn-secondary:visited{ display:inline-flex; align-items:center; padding:12px 20px; border-radius:8px; background:transparent; border:1.4px solid rgba(255,255,255,.3); color:#fff; font-size:13px; font-weight:700; text-decoration:none; }
.dfh__note{ font-size:11px; color:#8ea0c0; margin-bottom:20px; }
.dfh__trust{ display:flex; flex-wrap:wrap; gap:16px 22px; border-top:1px solid rgba(255,255,255,.14); padding-top:16px; }
.dfh__trust-item{ display:flex; align-items:center; gap:6px; }
.dfh__trust-icon{ width:14px; height:14px; color:var(--blue-ring); flex-shrink:0; }
.dfh__trust-icon svg{ width:100%; height:100%; }
.dfh__trust-item span{ font-size:10.5px; font-weight:600; color:#b7c2d9; }

.dfh__diagram{ position:relative; }
.dfh__badges{ display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:20px; flex-wrap:wrap; }
.dfh__badge{ display:inline-flex; align-items:center; gap:5px; padding:6px 11px; border-radius:20px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); font-size:10.5px; font-weight:700; color:#dbe4f3; }
.dfh__badge svg{ width:12px; height:12px; color:var(--blue-ring); }
.dfh__badge-arrow{ color:#5d6f8f; font-size:11px; }
.dfh__grid3{ display:grid; grid-template-columns:1fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:14px; align-items:center; position:relative; }
.dfh__node{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:10px; padding:14px 10px; display:flex; flex-direction:column; align-items:center; gap:7px; text-align:center; }
.dfh__node-icon{ width:26px; height:26px; }
.dfh__node-icon svg{ width:100%; height:100%; }
.dfh__node span{ font-size:10px; font-weight:700; color:#dbe4f3; line-height:1.3; }
.dfh__node--summary .dfh__node-icon{ color:#b7c2d9; }
.dfh__node--verified .dfh__node-icon{ color:var(--green); }
.dfh__node--annex .dfh__node-icon{ color:#e0a24a; }
.dfh__node--form .dfh__node-icon{ color:var(--blue-ring); }
.dfh__center{ grid-column:2; grid-row:1 / span 2; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; }
.dfh__center-icon{ width:64px; height:64px; color:var(--gold); filter:drop-shadow(0 0 14px rgba(212,168,83,.4)); }
.dfh__center-icon svg{ width:100%; height:100%; }
.dfh__center strong{ font-size:10.5px; font-weight:800; color:#fff; text-align:center; line-height:1.4; letter-spacing:.02em; }

@media (max-width:900px){
  .dfh__grid{ grid-template-columns:1fr; }
  .dfh__grid3{ grid-template-columns:1fr 1fr; }
  .dfh__center{ grid-column:1 / span 2; grid-row:auto; }
}

/* ---------- What do you need to do? (step selector) ---------- */
.dfw{ padding:44px 0; background:#fff; }
.dfw__heading{ font-size:15px; font-weight:800; color:var(--ink); margin-bottom:16px; }
.dfw__grid{ display:grid; grid-template-columns:1fr 1fr 0.9fr; gap:16px; align-items:start; }
.dfw__col{ background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-md); padding:16px; height:100%; box-sizing:border-box; }
.dfw__col-label{ font-size:10px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--blue); margin-bottom:10px; }
.dfw__radio-row{ display:flex; align-items:flex-start; gap:8px; font-size:11.5px; color:var(--ink); padding:6px 0; cursor:pointer; }
.dfw__radio-row input{ margin-top:2px; }
.dfw__result-row{ display:flex; justify-content:space-between; gap:8px; font-size:11px; padding:6px 0; border-bottom:1px solid var(--gray-100); }
.dfw__result-row:last-of-type{ border-bottom:none; }
.dfw__result-row span:first-child{ color:var(--ink-soft); }
.dfw__result-row span:last-child{ color:var(--ink); font-weight:700; text-align:right; }
.dfw__route-btn{ width:100%; margin-top:14px; padding:11px; border:none; border-radius:8px; background:var(--gray-200); color:var(--gray-500); font-size:12px; font-weight:700; cursor:not-allowed; transition:background .15s,color .15s; }
.dfw__route-btn.is-ready{ background:var(--gold); color:var(--navy-950); cursor:pointer; }

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

/* ---------- Filter/search row ---------- */
.dff{ padding:0 0 8px; background:#fff; }
.dff__row{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.dff__search{ flex:1; min-width:200px; padding:10px 12px; border:1px solid var(--gray-200); border-radius:8px; font-size:12.5px; }
.dff__select{ padding:10px 10px; border:1px solid var(--gray-200); border-radius:8px; font-size:12px; color:var(--ink); background:#fff; }
.dff__reset{ padding:10px 16px; border:1px solid var(--gray-200); border-radius:8px; background:#fff; font-size:12px; font-weight:700; color:var(--ink-soft); cursor:pointer; }

/* ---------- Verified document catalogue ---------- */
.dfc{ padding:24px 0 48px; background:#fff; }
.dfc__heading{ font-size:15px; font-weight:800; color:var(--ink); margin-bottom:2px; }
.dfc__sub{ font-size:11.5px; color:var(--ink-soft); margin-bottom:14px; }
.dfc__table-wrap{ overflow-x:auto; border:1px solid var(--gray-200); border-radius:var(--radius-md); }
.dfc__table{ width:100%; border-collapse:collapse; font-size:11.5px; min-width:760px; }
.dfc__table th,.dfc__table td{ padding:12px 12px; text-align:left; border-bottom:1px solid var(--gray-200); vertical-align:middle; }
.dfc__table thead th{ background:var(--bg-tint); font-weight:800; color:var(--ink); font-size:10px; text-transform:uppercase; }
.dfc__table tbody tr:last-child td{ border-bottom:none; }
.dfc__fam{ display:flex; align-items:center; gap:9px; font-weight:800; color:var(--ink); }
.dfc__fam-icon{ width:26px; height:26px; border-radius:6px; display:flex; align-items:center; justify-content:center; flex-shrink:0; color:#fff; }
.dfc__fam-icon svg{ width:14px; height:14px; }
.dfc__fam-icon--green{ background:var(--green); } .dfc__fam-icon--blue{ background:var(--blue); } .dfc__fam-icon--orange{ background:#c9963a; }
.dfc__vis{ display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-weight:700; }
.dfc__vis--public{ color:var(--green); }
.dfc__vis--protected{ color:#c0392b; }
.dfc__vis svg{ width:13px; height:13px; }
.dfc__route-btn{ display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; }
.dfc__route-btn--blue{ color:var(--blue); }
.dfc__route-btn--gold{ color:#b3781a; }

/* ---------- Access matrix ---------- */
.dfm{ padding:8px 0 48px; background:var(--bg-tint); }
.dfm__row{ display:grid; grid-template-columns:0.8fr 2fr; gap:18px; align-items:start; }
.dfm__heading{ font-size:14.5px; font-weight:800; color:var(--ink); margin-bottom:4px; }
.dfm__sub{ font-size:11.5px; color:var(--ink-soft); margin-bottom:14px; }
.dfm__legend{ display:flex; flex-direction:column; gap:9px; }
.dfm__legend-item{ display:flex; align-items:center; gap:7px; font-size:11px; color:var(--ink); }
.dfm__legend-icon{ width:14px; height:14px; flex-shrink:0; }
.dfm__legend-icon svg{ width:100%; height:100%; }
.dfm__legend-icon--green{ color:var(--green); } .dfm__legend-icon--red{ color:#c0392b; }
.dfm__table-wrap{ overflow-x:auto; border:1px solid var(--gray-200); border-radius:var(--radius-md); background:#fff; }
.dfm__table{ width:100%; border-collapse:collapse; font-size:10.5px; min-width:640px; }
.dfm__table th,.dfm__table td{ padding:10px; text-align:center; border-bottom:1px solid var(--gray-200); }
.dfm__table th:first-child,.dfm__table td:first-child{ text-align:left; font-weight:700; color:var(--ink); }
.dfm__table thead th{ background:var(--bg-tint); font-weight:800; color:var(--ink); font-size:9px; text-transform:uppercase; }
.dfm__tag{ display:inline-flex; align-items:center; gap:3px; font-size:9.5px; font-weight:700; }
.dfm__tag--green{ color:var(--green); } .dfm__tag--red{ color:#c0392b; } .dfm__tag--gray{ color:var(--gray-500); }
.dfm__note{ font-size:10.5px; color:var(--gray-500); margin-top:10px; }

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

/* ---------- Forms by purpose ---------- */
.dfg{ padding:8px 0 48px; background:#fff; }
.dfg__heading{ font-size:15px; font-weight:800; color:var(--ink); margin-bottom:2px; }
.dfg__sub{ font-size:11.5px; color:var(--ink-soft); margin-bottom:18px; }
.dfg__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.dfg__card{ background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-md); padding:16px; display:flex; flex-direction:column; border-top:3px solid transparent; }
.dfg__card--green{ border-top-color:var(--green); } .dfg__card--blue{ border-top-color:var(--blue); } .dfg__card--purple{ border-top-color:var(--purple); } .dfg__card--orange{ border-top-color:#c9963a; }
.dfg__card-head{ display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.dfg__card-icon{ width:20px; height:20px; }
.dfg__card--green .dfg__card-icon{ color:var(--green); } .dfg__card--blue .dfg__card-icon{ color:var(--blue); } .dfg__card--purple .dfg__card-icon{ color:var(--purple); } .dfg__card--orange .dfg__card-icon{ color:#c9963a; }
.dfg__card-icon svg{ width:100%; height:100%; }
.dfg__card strong{ font-size:11px; font-weight:800; letter-spacing:.02em; color:var(--ink); text-transform:uppercase; }
.dfg__card-label{ font-size:10px; font-weight:700; color:var(--ink); margin:8px 0 3px; }
.dfg__card ul{ list-style:none; margin:0 0 6px; padding:0; }
.dfg__card li{ font-size:10.5px; color:var(--ink-soft); line-height:1.6; }
.dfg__card-outcome{ font-size:10.5px; color:var(--ink-soft); margin-bottom:12px; }
.dfg__card-btn{ margin-top:auto; display:block; text-align:center; padding:9px; border:1.4px solid var(--blue-tint); border-radius:8px; font-size:11px; font-weight:700; color:var(--blue); }
.dfg__note{ font-size:10.5px; color:var(--gray-500); text-align:center; margin-top:14px; }

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

/* ---------- Protected exchange (dark) ---------- */
.dfx{ background:var(--navy-950); padding:48px 24px; position:relative; overflow:hidden; }
.dfx__glow{ position:absolute; inset:0; background:radial-gradient(500px 260px at 50% 0%, rgba(63,126,232,.16), transparent 70%); pointer-events:none; }
.dfx__inner{ position:relative; }
.dfx__heading{ color:#fff; font-size:16px; font-weight:800; margin-bottom:2px; }
.dfx__sub{ color:#b7c2d9; font-size:11.5px; margin-bottom:22px; }
.dfx__flow{ display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:26px; flex-wrap:wrap; }
.dfx__fnode{ display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; width:130px; }
.dfx__fnode-icon{ width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.06); border:1.4px solid var(--blue-ring); display:flex; align-items:center; justify-content:center; color:var(--blue-ring); }
.dfx__fnode-icon svg{ width:20px; height:20px; }
.dfx__fnode strong{ font-size:10.5px; color:#fff; }
.dfx__fnode span{ font-size:9.5px; color:#8ea0c0; line-height:1.4; }
.dfx__farrow{ color:#5d6f8f; }
.dfx__row3{ display:grid; grid-template-columns:1fr 1.3fr; gap:16px; }
.dfx__box{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius-md); padding:16px; }
.dfx__box strong{ display:block; font-size:11.5px; color:#fff; margin-bottom:10px; }
.dfx__states{ display:flex; flex-direction:column; gap:7px; }
.dfx__state{ display:flex; align-items:center; gap:7px; font-size:10.5px; color:#dbe4f3; }
.dfx__state-dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.dfx__preview{ background:rgba(255,255,255,.04); border:1px dashed rgba(255,255,255,.2); border-radius:8px; padding:24px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px; margin-top:4px; }
.dfx__preview-icon{ width:26px; height:26px; color:#5d6f8f; }
.dfx__preview-icon svg{ width:100%; height:100%; }
.dfx__preview span{ font-size:10.5px; color:#8ea0c0; }
.dfx__rail{ display:flex; flex-wrap:wrap; justify-content:center; gap:16px 22px; margin-top:22px; border-top:1px solid rgba(255,255,255,.12); padding-top:18px; }
.dfx__rail-item{ display:flex; align-items:center; gap:6px; font-size:10.5px; color:#b7c2d9; }
.dfx__rail-item svg{ width:14px; height:14px; color:var(--blue-ring); }

@media (max-width:900px){ .dfx__row3{ grid-template-columns:1fr; } .dfx__rail{ flex-direction:column; align-items:flex-start; } }

/* ---------- Before you submit + Request access form + Access checks ---------- */
.dfr{ padding:8px 0 48px; background:#fff; }
.dfr__row{ display:grid; grid-template-columns:0.85fr 1.4fr 0.85fr; gap:16px; align-items:start; }
.dfr__card{ background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-md); padding:16px; height:100%; box-sizing:border-box; }
.dfr__heading{ font-size:13px; font-weight:800; color:var(--ink); margin-bottom:2px; }
.dfr__sub{ font-size:10.5px; color:var(--ink-soft); margin-bottom:12px; }
.dfr__check-row{ display:flex; align-items:center; gap:7px; font-size:11px; color:var(--ink); padding:4px 0; }
.dfr__check-row input{ width:13px; height:13px; }
.dfr__progress{ font-size:11px; color:var(--ink-soft); margin:10px 0; text-align:center; }
.dfr__readybtn{ width:100%; padding:10px; border:1px solid var(--gray-200); border-radius:8px; background:var(--bg-tint); color:var(--gray-500); font-size:11.5px; font-weight:700; cursor:default; margin-bottom:16px; }
.dfr__nobox{ background:#fdecec; border:1px solid #f3b8b8; border-radius:8px; padding:10px 12px; }
.dfr__nobox strong{ display:block; font-size:11px; color:#a12727; margin-bottom:6px; }
.dfr__nobox ul{ list-style:none; margin:0; padding:0; }
.dfr__nobox li{ font-size:10.5px; color:#a12727; line-height:1.7; }
.dfr__form{ display:flex; flex-direction:column; }
.dfr__field{ margin-bottom:9px; }
.dfr__label{ font-size:10.5px; font-weight:700; color:var(--ink); margin-bottom:4px; display:block; }
.dfr__input,.dfr__select,.dfr__textarea{ width:100%; padding:8px 10px; border:1px solid var(--gray-200); border-radius:7px; font-size:11.5px; color:var(--ink); font-family:inherit; }
.dfr__row2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.dfr__upload{ display:flex; align-items:center; align-self:flex-start; width:fit-content; gap:7px; padding:8px 12px; border:1px dashed var(--gray-200); border-radius:7px; font-size:11px; color:var(--ink-soft); cursor:pointer; margin-bottom:8px; }
.dfr__upload svg{ width:14px; height:14px; }
.dfr__consent{ display:flex; align-items:flex-start; gap:7px; font-size:10.5px; color:var(--ink-soft); line-height:1.5; margin:8px 0 12px; }
.dfr__submit{ padding:11px; border:none; border-radius:8px; background:var(--gold); color:var(--navy-950); font-size:12px; font-weight:700; cursor:pointer; }
.dfr__msg{ font-size:11.5px; margin-top:10px; display:none; }
.dfr__checklist2{ display:flex; flex-direction:column; gap:9px; margin-bottom:14px; }
.dfr__check2{ display:flex; align-items:flex-start; gap:8px; font-size:11px; color:var(--ink); }
.dfr__check2-icon{ width:14px; height:14px; flex-shrink:0; margin-top:2px; color:var(--blue); }
.dfr__check2-icon svg{ width:100%; height:100%; }
.dfr__footnote{ font-size:10.5px; color:var(--gray-500); background:var(--bg-tint); border-radius:7px; padding:9px 10px; }

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

/* ---------- Document verification checker ---------- */
.dfv{ padding:8px 0 48px; background:var(--bg-tint); }
.dfv__heading{ font-size:14.5px; font-weight:800; color:var(--ink); margin-bottom:2px; }
.dfv__sub{ font-size:11.5px; color:var(--ink-soft); margin-bottom:16px; }
.dfv__grid{ display:grid; grid-template-columns:1.1fr 1fr 0.9fr; gap:16px; align-items:start; }
.dfv__card{ background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-md); padding:16px; height:100%; box-sizing:border-box; }
.dfv__field{ margin-bottom:10px; }
.dfv__label{ font-size:10.5px; font-weight:700; color:var(--ink); margin-bottom:4px; display:block; }
.dfv__input,.dfv__select{ width:100%; padding:9px 10px; border:1px solid var(--gray-200); border-radius:7px; font-size:11.5px; }
.dfv__submit{ width:100%; padding:10px; border:none; border-radius:8px; background:var(--gold); color:var(--navy-950); font-size:12px; font-weight:700; cursor:pointer; margin-top:4px; }
.dfv__result{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px; padding:20px 10px; color:var(--gray-500); }
.dfv__result-icon{ width:32px; height:32px; }
.dfv__result-icon svg{ width:100%; height:100%; }
.dfv__result span{ font-size:11px; }
.dfv__checklist{ display:flex; flex-direction:column; gap:8px; margin-bottom:12px; }
.dfv__check-row{ display:flex; align-items:center; gap:7px; font-size:11px; color:var(--ink); }
.dfv__check-icon{ width:13px; height:13px; color:var(--blue); flex-shrink:0; }
.dfv__check-icon svg{ width:100%; height:100%; }
.dfv__warn{ background:#fdecec; border:1px solid #f3b8b8; border-radius:8px; padding:10px 12px; display:flex; align-items:flex-start; gap:8px; }
.dfv__warn svg{ width:16px; height:16px; color:#a12727; flex-shrink:0; margin-top:1px; }
.dfv__warn p{ font-size:10.5px; color:#a12727; margin:0; line-height:1.5; }

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

/* ---------- Governance & trust (dark) + FAQ ---------- */
.dft{ background:var(--navy-950); padding:48px 24px; position:relative; overflow:hidden; }
.dft__glow{ position:absolute; inset:0; background:radial-gradient(500px 260px at 50% 0%, rgba(63,126,232,.16), transparent 70%); pointer-events:none; }
.dft__row{ position:relative; display:grid; grid-template-columns:1fr 1fr 1.1fr; gap:20px; align-items:start; }
.dft__heading{ color:#fff; font-size:13px; font-weight:800; margin-bottom:12px; }
.dft__check{ display:flex; align-items:flex-start; gap:8px; font-size:11px; color:#dbe4f3; padding:6px 0; line-height:1.5; }
.dft__check svg{ width:13px; height:13px; color:var(--blue-ring); flex-shrink:0; margin-top:2px; }
.dft__faq-item{ border-bottom:1px solid rgba(255,255,255,.14); }
.dft__faq-question{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 0; background:none; border:none; text-align:left; font-size:11.5px; font-weight:700; color:#fff; cursor:pointer; }
.dft__faq-chevron{ width:13px; height:13px; flex-shrink:0; color:#8ea0c0; transition:transform .18s ease; }
.dft__faq-chevron svg{ width:100%; height:100%; }
.dft__faq-answer{ display:none; padding:0 0 12px; }
.dft__faq-answer p{ font-size:11px; color:#b7c2d9; line-height:1.6; margin:0; }
.dft__links{ position:relative; text-align:center; margin-top:24px; padding-top:20px; border-top:1px solid rgba(255,255,255,.14); font-size:10.5px; }
.dft__links a{ color:#b7c2d9; margin:0 8px; }

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