:root{
  --idi-ink:#11253a;
  --idi-muted:#5e6f80;
  --idi-line:#d9e2e8;
  --idi-soft:#f4f7f8;
  --idi-panel:#ffffff;
  --idi-navy:#0f3557;
  --idi-blue:#23658f;
  --idi-teal:#16756f;
  --idi-green:#2f7d57;
  --idi-yellow:#a06b0b;
  --idi-red:#a93d3d;
  --idi-grey:#8a98a5;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px}
.idi-body{background:#edf2f4;color:var(--idi-ink)}
.idi-shell{width:min(1540px,calc(100% - 32px));margin:0 auto;padding:28px 0 72px}
.idi-hero{background:linear-gradient(135deg,#0e3150,#174f70);color:white;border-radius:20px;padding:32px;box-shadow:0 16px 42px rgba(13,36,55,.18)}
.idi-hero h1{margin:.35rem 0 .65rem;font-size:clamp(2rem,3vw,3.5rem);line-height:1.02;color:white}
.idi-hero p{margin:0;max-width:900px;color:#dcebf4;font-size:1.05rem;line-height:1.65}
.idi-hero .review-kicker{color:#b8d8e9}
.idi-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:30px;align-items:end}
.idi-programme-select-wrap{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:14px}
.idi-programme-select-wrap label{display:block;font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;font-weight:800;color:#cce3ef;margin-bottom:7px}
.idi-programme-select-wrap select{width:100%;border:1px solid rgba(255,255,255,.34);background:#fff;color:var(--idi-ink);border-radius:9px;padding:11px 12px;font:inherit;font-weight:700}
.idi-authority{margin-top:22px;padding:13px 15px;border-left:4px solid #8fd1cb;background:rgba(255,255,255,.08);border-radius:0 10px 10px 0;color:#e8f4f8;font-size:.92rem;line-height:1.55}
.review-status{margin:18px 0}
.idi-dossier-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}
.idi-navigator{position:sticky;top:84px;background:var(--idi-panel);border:1px solid var(--idi-line);border-radius:15px;padding:12px;box-shadow:0 8px 22px rgba(20,46,65,.06)}
.idi-nav-title{font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:var(--idi-muted);padding:10px 11px 12px}
.idi-navigator a{display:block;text-decoration:none;color:var(--idi-ink);font-weight:700;border-radius:8px;padding:9px 11px;margin:2px 0;border:1px solid transparent}
.idi-navigator a:hover,.idi-navigator a.active{background:#eaf2f6;color:var(--idi-navy);border-color:#d5e4ec}
.idi-content{min-width:0}
.idi-section{background:var(--idi-panel);border:1px solid var(--idi-line);border-radius:17px;padding:24px;margin-bottom:20px;box-shadow:0 8px 24px rgba(20,46,65,.05)}
.idi-section-heading{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:18px}
.idi-section-heading h2{margin:.2rem 0 0;font-size:1.5rem;color:var(--idi-ink)}
.idi-section-heading p{margin:0;max-width:550px;color:var(--idi-muted);line-height:1.55;text-align:right}
.idi-section-heading a{color:var(--idi-blue);font-weight:800;text-decoration:none}
.idi-ref{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem;color:var(--idi-muted);background:var(--idi-soft);padding:7px 9px;border-radius:7px;overflow-wrap:anywhere}
.idi-health-layout{display:grid;grid-template-columns:minmax(290px,38%) 1fr;gap:18px}
.idi-health-card{background:#102f4a;color:white;border-radius:15px;padding:22px;min-height:190px;display:flex;flex-direction:column;justify-content:center}
.idi-health-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:#bfd7e5}
.idi-health-value{display:flex;align-items:end;gap:12px;margin:12px 0}
.idi-health-value strong{font-size:3.15rem;line-height:1}
.idi-health-value span{font-weight:800;color:#cfe2ed;padding-bottom:6px}
.idi-bar{display:block;width:100%;height:12px;background:#dce6eb;border:0;border-radius:999px;padding:0;overflow:hidden;cursor:pointer;text-align:left}
.idi-bar span{display:block;height:100%;background:linear-gradient(90deg,#2d7c75,#3d86a6);border-radius:999px;transition:width .35s ease}
.idi-bar:hover{outline:3px solid rgba(44,112,148,.16)}
.idi-bar-large{height:15px;background:rgba(255,255,255,.18)}
.idi-bar-large span{background:#89d2c7}
.idi-health-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.idi-metric-button{appearance:none;text-align:left;background:var(--idi-soft);border:1px solid var(--idi-line);border-radius:12px;padding:14px;min-height:88px;color:var(--idi-ink);cursor:pointer}
.idi-metric-button:hover{border-color:#8eb3c7;background:#edf5f8;transform:translateY(-1px)}
.idi-metric-button span{display:block;color:var(--idi-muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;margin-bottom:7px}
.idi-metric-button strong{display:block;font-size:1.35rem;line-height:1.15}
.idi-portfolio-heading,.idi-heat-heading{margin-top:28px}
.idi-table-wrap{overflow:auto;border:1px solid var(--idi-line);border-radius:12px}
.idi-portfolio-table{width:100%;border-collapse:collapse;min-width:760px}
.idi-portfolio-table th{background:#edf3f6;color:#40586b;text-align:left;padding:12px;font-size:.73rem;text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--idi-line)}
.idi-portfolio-table td{padding:13px 12px;border-bottom:1px solid #e5ebef;vertical-align:middle}
.idi-portfolio-table tr:last-child td{border-bottom:0}
.idi-portfolio-table tbody tr{cursor:pointer}
.idi-portfolio-table tbody tr:hover,.idi-portfolio-table tbody tr.current{background:#f0f7fa}
.idi-portfolio-name strong{display:block}.idi-portfolio-name span{display:block;color:var(--idi-muted);font-size:.82rem;margin-top:3px}
.idi-score-chip{display:inline-flex;align-items:center;gap:7px;font-weight:850}
.idi-score-chip::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--idi-grey);box-shadow:0 0 0 3px rgba(138,152,165,.13)}
.idi-score-chip.green::before{background:var(--idi-green);box-shadow:0 0 0 3px rgba(47,125,87,.13)}
.idi-score-chip.yellow::before{background:var(--idi-yellow);box-shadow:0 0 0 3px rgba(160,107,11,.13)}
.idi-score-chip.red::before{background:var(--idi-red);box-shadow:0 0 0 3px rgba(169,61,61,.13)}
.idi-score-chip.none::before{background:#c5ced5}
.idi-readiness{display:grid;gap:12px}
.idi-readiness-row{display:grid;grid-template-columns:130px minmax(0,1fr) 55px;gap:12px;align-items:center}
.idi-readiness-row button{display:contents;color:inherit}
.idi-readiness-label{font-weight:850}.idi-readiness-value{text-align:right;font-weight:900;color:var(--idi-navy)}
.idi-explain{margin-top:22px;background:#f5f8fa;border:1px solid var(--idi-line);border-radius:14px;padding:18px}
.idi-explain-grid{display:grid;grid-template-columns:180px repeat(3,minmax(0,1fr));gap:12px}
.idi-explain-item{background:white;border:1px solid #e0e7eb;border-radius:10px;padding:13px}
.idi-explain-item span{display:block;color:var(--idi-muted);font-size:.73rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800;margin-bottom:5px}
.idi-explain-item strong{font-size:1.15rem;line-height:1.3}
.idi-explain-item.primary{background:#123956;color:white}.idi-explain-item.primary span{color:#bfd6e3}
.idi-explain-work{margin-top:12px;color:var(--idi-muted);line-height:1.55}
.idi-explain-work strong{color:var(--idi-ink)}
.idi-heatmap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.idi-heat-item{border:1px solid var(--idi-line);border-radius:12px;padding:14px;background:#fff}
.idi-heat-head{display:flex;justify-content:space-between;gap:10px;font-weight:850;margin-bottom:9px}
.idi-heat-item.low{background:#fff6f6;border-color:#ebcaca}.idi-heat-item.medium{background:#fffaf0;border-color:#ead9b6}.idi-heat-item.high{background:#f2faf6;border-color:#c8e1d3}
.idi-filter-panel{border:1px solid var(--idi-line);background:var(--idi-soft);border-radius:14px;padding:14px;margin-bottom:16px}
.idi-smart-filters{display:flex;flex-wrap:wrap;gap:8px}
.idi-smart-filters button{border:1px solid #cbd8df;background:white;color:#2b4558;border-radius:999px;padding:8px 11px;font:inherit;font-size:.83rem;font-weight:800;cursor:pointer}
.idi-smart-filters button:hover,.idi-smart-filters button.active{background:#153e5d;border-color:#153e5d;color:white}
.idi-search-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}
.idi-search-row input{width:100%;border:1px solid #c9d6dd;border-radius:9px;padding:11px 12px;font:inherit;background:white;color:var(--idi-ink)}
.idi-search-row button,.idi-appendix-actions button,.idi-appendix-actions a{border:1px solid #b8c8d1;background:white;color:var(--idi-navy);border-radius:8px;padding:10px 13px;font:inherit;font-weight:850;text-decoration:none;cursor:pointer}
.idi-filter-summary{margin-top:9px;color:var(--idi-muted);font-size:.86rem}
.idi-doc-list{display:grid;gap:12px}.idi-doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.idi-doc-card{border:1px solid var(--idi-line);border-radius:14px;background:white;overflow:hidden}
.idi-doc-card.is-duplicate{border-color:#e5c2a7}.idi-doc-card.is-superseded{opacity:.82}
.idi-doc-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:17px}
.idi-doc-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:var(--idi-muted)}
.idi-doc-title{margin:5px 0 8px;font-size:1.1rem;color:var(--idi-ink)}
.idi-doc-meta{display:flex;flex-wrap:wrap;gap:7px;color:var(--idi-muted);font-size:.82rem}
.idi-doc-meta span{background:#f1f5f7;border-radius:6px;padding:4px 7px}
.idi-doc-toggle{align-self:start;border:1px solid #b7cad5;background:#f7fafb;color:var(--idi-navy);border-radius:8px;padding:9px 11px;font:inherit;font-weight:850;cursor:pointer}
.idi-badges{display:flex;flex-wrap:wrap;gap:7px;padding:0 17px 16px}
.idi-badge{border:1px solid #cedbe2;background:#f7fafb;color:#29485c;border-radius:999px;padding:6px 9px;font:inherit;font-size:.76rem;font-weight:850;cursor:pointer}
.idi-badge:hover{background:#e7f0f4;border-color:#94b4c4}.idi-badge.warn{background:#fff7e8;border-color:#ead4a8;color:#76510a}.idi-badge.danger{background:#fff0f0;border-color:#e5bcbc;color:#8f3030}.idi-badge.good{background:#edf8f3;border-color:#bfdfce;color:#246a49}
.idi-doc-detail{border-top:1px solid var(--idi-line);background:#f8fafb;padding:16px;display:none}
.idi-doc-card.open .idi-doc-detail{display:block}
.idi-mini-dossier{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.idi-mini-block{background:white;border:1px solid #dfe7eb;border-radius:10px;padding:12px;min-height:90px}
.idi-mini-block h4{margin:0 0 6px;font-size:.73rem;text-transform:uppercase;letter-spacing:.07em;color:var(--idi-muted)}
.idi-mini-block strong{display:block;font-size:.96rem;line-height:1.35;overflow-wrap:anywhere}.idi-mini-block p{margin:5px 0 0;color:var(--idi-muted);font-size:.82rem;line-height:1.45;overflow-wrap:anywhere}
.idi-mini-block.wide{grid-column:span 2}.idi-mini-block.full{grid-column:1/-1}
.idi-inline-list{margin:7px 0 0;padding:0;list-style:none}.idi-inline-list li{padding:6px 0;border-top:1px solid #edf1f3;font-size:.82rem;line-height:1.4}.idi-inline-list li:first-child{border-top:0}
.idi-empty{border:1px dashed #bdcbd3;border-radius:12px;padding:22px;color:var(--idi-muted);background:#fafcfc;text-align:center}
.idi-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:15px}
.idi-summary-card{border:1px solid var(--idi-line);background:var(--idi-soft);border-radius:11px;padding:13px}.idi-summary-card span{display:block;color:var(--idi-muted);font-size:.73rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.idi-summary-card strong{display:block;font-size:1.35rem;margin-top:5px}
.idi-compact-list{display:grid;gap:9px}.idi-compact-item{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(120px,.7fr) minmax(120px,.7fr);gap:12px;align-items:center;border:1px solid var(--idi-line);border-radius:10px;padding:12px;background:white}.idi-compact-item strong{overflow-wrap:anywhere}.idi-compact-item span{color:var(--idi-muted);font-size:.85rem;overflow-wrap:anywhere}
.idi-timeline{position:relative;padding-left:28px}.idi-timeline::before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:#c9d8df}.idi-timeline-item{position:relative;border:1px solid var(--idi-line);border-radius:10px;padding:12px 14px;margin-bottom:10px;background:white}.idi-timeline-item::before{content:"";position:absolute;width:11px;height:11px;border-radius:50%;left:-26px;top:17px;background:var(--idi-blue);box-shadow:0 0 0 4px #edf4f7}.idi-timeline-item strong{display:block}.idi-timeline-item span{display:block;color:var(--idi-muted);font-size:.83rem;margin-top:3px}.idi-timeline-item button{margin-top:8px;border:0;background:none;color:var(--idi-blue);padding:0;font-weight:850;cursor:pointer}
.idi-release-card{border:1px solid var(--idi-line);border-radius:12px;padding:15px;background:#fff}.idi-release-card h3{margin:.3rem 0}.idi-release-card p{color:var(--idi-muted);line-height:1.5;margin:.4rem 0}.idi-release-card .idi-doc-meta{margin-top:9px}
.idi-relationship-explorer{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:14px}
.idi-relationship-list{display:grid;gap:8px;max-height:620px;overflow:auto;padding-right:4px}
.idi-rel-button{width:100%;text-align:left;border:1px solid var(--idi-line);border-radius:10px;background:white;padding:11px;cursor:pointer;color:var(--idi-ink)}
.idi-rel-button:hover,.idi-rel-button.active{background:#edf5f8;border-color:#9bb9c8}.idi-rel-button strong{display:block;font-size:.9rem}.idi-rel-button span{display:block;color:var(--idi-muted);font-size:.79rem;margin-top:4px}
.idi-rel-detail{border:1px solid var(--idi-line);border-radius:12px;padding:18px;background:var(--idi-soft);min-height:220px}
.idi-rel-chain{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center;margin:14px 0}.idi-rel-node{background:white;border:1px solid #d3e0e6;border-radius:11px;padding:14px;min-height:100px}.idi-rel-node span{display:block;color:var(--idi-muted);font-size:.74rem;text-transform:uppercase;font-weight:850;letter-spacing:.06em}.idi-rel-node strong{display:block;margin-top:7px;line-height:1.4;overflow-wrap:anywhere}.idi-rel-arrow{font-size:1.5rem;color:var(--idi-blue);font-weight:900}.idi-rel-basis{background:white;border:1px solid #dce5e9;border-radius:9px;padding:12px;color:var(--idi-muted);line-height:1.55}
.idi-appendix-actions{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:15px}.idi-appendix-actions button:first-child{background:#153e5d;color:white;border-color:#153e5d}
.idi-appendix-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.idi-appendix-grid article{border:1px solid var(--idi-line);border-radius:11px;padding:15px;background:var(--idi-soft)}.idi-appendix-grid h3{margin:0 0 7px}.idi-appendix-grid p{margin:0;color:var(--idi-muted);line-height:1.55}
.idi-json{margin-top:14px;border:1px solid var(--idi-line);border-radius:10px;background:#0f2638;color:white;overflow:hidden}.idi-json summary{padding:13px 15px;cursor:pointer;font-weight:850}.idi-json pre{margin:0;border-top:1px solid rgba(255,255,255,.15);padding:15px;max-height:520px;overflow:auto;font-size:.76rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1160px){.idi-dossier-layout{grid-template-columns:1fr}.idi-navigator{position:static;display:flex;overflow:auto;gap:4px}.idi-nav-title{display:none}.idi-navigator a{white-space:nowrap}.idi-health-layout{grid-template-columns:1fr}.idi-health-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.idi-mini-dossier{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.idi-shell{width:min(100% - 18px,1540px);padding-top:16px}.idi-hero{padding:22px}.idi-hero-grid{grid-template-columns:1fr}.idi-section{padding:17px}.idi-section-heading{display:block}.idi-section-heading p{text-align:left;margin-top:8px}.idi-health-metrics,.idi-heatmap,.idi-summary-grid,.idi-doc-grid,.idi-appendix-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.idi-explain-grid{grid-template-columns:1fr 1fr}.idi-relationship-explorer{grid-template-columns:1fr}.idi-compact-item{grid-template-columns:1fr}.idi-readiness-row{grid-template-columns:95px minmax(0,1fr) 44px}}
@media(max-width:520px){.idi-health-metrics,.idi-heatmap,.idi-summary-grid,.idi-doc-grid,.idi-appendix-grid,.idi-explain-grid,.idi-mini-dossier{grid-template-columns:1fr}.idi-mini-block.wide{grid-column:auto}.idi-doc-main{grid-template-columns:1fr}.idi-rel-chain{grid-template-columns:1fr}.idi-rel-arrow{transform:rotate(90deg);text-align:center}.idi-health-value strong{font-size:2.5rem}}
@media print{.tvg-header,.idi-navigator,.review-status,.idi-filter-panel,.idi-appendix-actions,.os-footer{display:none!important}.idi-shell{width:100%;padding:0}.idi-dossier-layout{display:block}.idi-section,.idi-hero{box-shadow:none;break-inside:avoid}.idi-doc-detail{display:block!important}.idi-body{background:white}}

/* v515.1 — hero readability and programme registry coverage hardening */
.idi-body .idi-hero,
.idi-body .idi-hero *{
  -webkit-font-smoothing:antialiased;
}
.idi-body .idi-hero h1{
  color:#fffdf6!important;
  -webkit-text-fill-color:#fffdf6!important;
  text-shadow:0 3px 18px rgba(0,0,0,.28)!important;
  opacity:1!important;
}
.idi-body .idi-hero p{
  color:#f1f8fb!important;
  -webkit-text-fill-color:#f1f8fb!important;
}
.idi-body .idi-hero .review-kicker,
.idi-body .idi-programme-select-wrap label{
  color:#d7edf7!important;
  -webkit-text-fill-color:#d7edf7!important;
}
.idi-body .idi-authority{
  color:#f4fbfd!important;
  -webkit-text-fill-color:#f4fbfd!important;
  background:rgba(255,255,255,.12);
}
.idi-body .idi-programme-select-wrap{
  min-width:0;
}
.idi-body .idi-programme-select-wrap select{
  color:#11253a!important;
  -webkit-text-fill-color:#11253a!important;
  text-overflow:ellipsis;
}
@media (min-width:1100px){
  .idi-hero-grid{grid-template-columns:minmax(0,1fr) minmax(340px,390px)}
}
@media (max-width:760px){
  .idi-hero{padding:24px 20px}
  .idi-hero-grid{grid-template-columns:1fr;align-items:start}
  .idi-programme-select-wrap{width:100%}
}
