:root {
  --navy: #0c2740;
  --navy-mid: #173b5a;
  --ink: #142c45;
  --ink-soft: #40556c;
  --muted: #788594;
  --paper: #f7f4ee;
  --paper-deep: #eee9df;
  --white: #fffdf9;
  --line: #ded8cc;
  --gold: #b9863d;
  --gold-soft: #eadbc1;
  --teal: #148d78;
  --teal-soft: #e1f1eb;
  --gray-soft: #ecebe7;
  --serif: 'Libre Baskerville', Georgia, serif;
  --sans: 'Manrope', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --content: 1260px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: var(--paper); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid rgba(20, 141, 120, .4); outline-offset: 3px; }
img { max-width: 100%; }
.skip-link { position: fixed; z-index: 100; left: 1rem; top: -4rem; padding: .7rem 1rem; color: var(--white); background: var(--navy); }
.skip-link:focus { top: 0; }

.site-header { position: relative; z-index: 30; border-bottom: 1px solid rgba(222, 216, 204, .95); background: rgba(247, 244, 238, .96); }
.header-inner { display: flex; align-items: center; justify-content: space-between; width: min(var(--content), calc(100% - 64px)); min-height: 82px; margin: 0 auto; }
.brand { display: inline-flex; align-items: center; gap: .9rem; min-width: 230px; }
.brand img { display: block; width: 192px; height: auto; }
.brand-subtitle { display: none; color: var(--gold); font-size: .61rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.primary-nav { display: flex; align-items: center; gap: 2.9rem; height: 82px; color: var(--ink); font-size: .82rem; font-weight: 700; }
.primary-nav a { position: relative; display: inline-flex; align-items: center; height: 100%; }
.primary-nav a::after { position: absolute; right: 0; bottom: 0; left: 0; height: 2px; content: ''; background: transparent; }
.primary-nav a:hover, .primary-nav a.is-active { color: var(--gold); }
.primary-nav a.is-active::after { background: var(--gold); }
.menu-toggle { display: none; border: 0; color: var(--navy); background: transparent; font-size: .76rem; font-weight: 800; }

.app-shell { width: 100%; min-height: 62vh; }
.container { width: min(var(--content), calc(100% - 64px)); margin: 0 auto; }
.initial-shell { width: min(var(--content), calc(100% - 64px)); min-height: 26rem; margin: 0 auto; padding: 5rem 0 4rem; }
.initial-shell h1 { max-width: 720px; }
.initial-shell .lede { max-width: 560px; }
.loading { min-height: 28rem; display: grid; place-items: center; color: var(--muted); font-size: .78rem; }
.loading::before { content: ''; width: 1rem; height: 1rem; margin-right: .6rem; display: inline-block; border: 2px solid var(--line); border-top-color: var(--gold); border-radius: 50%; animation: spin .8s linear infinite; vertical-align: -.15rem; }
@keyframes spin { to { transform: rotate(360deg); } }
.async-status { min-height: 1.2rem; margin-top: .75rem; color: var(--muted); font-size: .66rem; line-height: 1.45; }
.async-state { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.inline-retry { padding: .25rem .5rem; border: 1px solid var(--gold); color: var(--gold); background: transparent; font-size: .62rem; font-weight: 800; cursor: pointer; }
.eyebrow { margin: 0 0 .75rem; color: var(--gold); font-size: .65rem; font-weight: 800; letter-spacing: .18em; line-height: 1.4; text-transform: uppercase; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: .7rem; margin: 0 0 1.4rem; color: var(--muted); font-size: .66rem; font-weight: 700; }
.breadcrumb a:hover { color: var(--gold); }
.breadcrumb span::before { margin-right: .7rem; content: '/'; color: var(--gold); }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; letter-spacing: -.035em; }
h1 { margin-bottom: 1rem; font-size: clamp(2.75rem, 5.2vw, 5.2rem); line-height: 1.04; }
h2 { margin-bottom: .55rem; font-size: clamp(1.8rem, 3.2vw, 3rem); line-height: 1.08; }
h3 { margin-bottom: .35rem; font-size: 1.05rem; line-height: 1.3; }
.lede { max-width: 620px; margin-bottom: 0; color: var(--ink-soft); font-size: .98rem; line-height: 1.65; }
.gold-rule { width: 42px; height: 2px; margin: 1.35rem 0; background: var(--gold); }
.arrow-link { color: var(--gold); font-size: .76rem; font-weight: 800; white-space: nowrap; }
.arrow-link::after { margin-left: .42rem; content: '→'; font-size: 1rem; }

/* Home */
.home-hero { position: relative; min-height: 528px; overflow: hidden; background-color: var(--paper); background-image: linear-gradient(90deg, rgba(247,244,238,1) 0%, rgba(247,244,238,.98) 38%, rgba(247,244,238,.72) 63%, rgba(247,244,238,.12) 100%), url('/atlas/assets/atlas-institutional-hero.webp'); background-position: center, right center; background-repeat: no-repeat; background-size: cover; }
.home-hero::after { position: absolute; inset: 0; pointer-events: none; content: ''; background: linear-gradient(180deg, rgba(247,244,238,.1), rgba(247,244,238,.08) 65%, rgba(247,244,238,.75)); }
.home-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr); align-items: center; gap: 3rem; width: min(var(--content), calc(100% - 64px)); min-height: 528px; margin: 0 auto; padding: 4.2rem 0 3.8rem; }
.home-copy { max-width: 720px; }
.home-copy h1 { max-width: 700px; margin-bottom: 1.15rem; }
.home-copy .lede { max-width: 540px; font-family: var(--serif); font-size: 1.02rem; }
.home-areas { align-self: end; padding: 0 0 .4rem; }
.home-areas .eyebrow { margin-bottom: 1rem; }
.area-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; }
.area-tile { min-height: 124px; padding: 1.05rem .95rem .9rem; border: 1px solid rgba(185, 134, 61, .34); background: rgba(255, 253, 249, .77); transition: border-color .2s, background .2s, transform .2s; }
.area-tile:hover { border-color: var(--gold); background: rgba(255, 253, 249, .95); transform: translateY(-2px); }
.area-tile h2 { margin: 0 0 .8rem; font-family: var(--sans); font-size: .78rem; font-weight: 700; letter-spacing: 0; }
.area-tile .arrow-link { font-size: .7rem; font-weight: 600; }
.home-areas .area-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Area */
.area-page { background: var(--paper); }
.area-hero { position: relative; overflow: hidden; min-height: 246px; padding: 2rem 0 2.25rem; background-color: var(--paper); background-image: radial-gradient(circle at 77% 28%, rgba(17,47,76,.035) 0 1px, transparent 1.5px), repeating-radial-gradient(circle at 77% 28%, transparent 0 74px, rgba(183,135,55,.08) 75px 76px); background-position: center; background-repeat: no-repeat; background-size: auto, 620px 620px; }
.area-hero::after { position: absolute; inset: 0; pointer-events: none; content: ''; background: linear-gradient(180deg, rgba(247,244,238,.04), rgba(247,244,238,.34)); }
.area-hero-inner { position: relative; z-index: 1; width: min(var(--content), calc(100% - 64px)); margin: 0 auto; }
.area-hero h1 { max-width: 620px; margin: 0 0 .45rem; font-size: clamp(2.5rem, 4.4vw, 4.25rem); }
.area-hero .gold-rule { margin: .95rem 0 0; }
.area-content { width: min(var(--content), calc(100% - 64px)); margin: 0 auto; padding: 2.25rem 0 4.2rem; }
.section-label { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; color: var(--gold); font-size: .65rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.section-label::before { width: 34px; height: 2px; content: ''; background: var(--gold); }
.topic-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.topic-card { display: flex; min-height: 280px; flex-direction: column; padding: 1.5rem 1.4rem 1.3rem; border: 1px solid var(--line); background: rgba(255, 253, 249, .78); transition: border-color .2s, box-shadow .2s, transform .2s; }
.topic-card:hover { border-color: rgba(185, 134, 61, .78); box-shadow: 0 13px 26px rgba(20, 44, 69, .06); transform: translateY(-2px); }
.topic-card .card-status { display: flex; align-items: center; min-height: 1.3rem; margin-bottom: 1.1rem; color: var(--ink-soft); font-size: .7rem; font-weight: 700; }
.topic-card .card-status::before { width: 7px; height: 7px; margin-right: .5rem; content: ''; border-radius: 50%; background: var(--teal); }
.topic-card h2 { display: -webkit-box; overflow: hidden; max-width: 25rem; margin-bottom: .7rem; font-size: 1.65rem; line-height: 1.12; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.topic-card p { margin-bottom: 1rem; color: var(--ink-soft); font-size: .78rem; line-height: 1.55; }
.topic-card .last-movement { margin-top: auto; padding-top: .9rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .67rem; line-height: 1.45; }
.topic-card .last-movement strong { display: block; margin-top: .2rem; color: var(--ink); font-weight: 600; }
.topic-card .last-movement small { display: block; margin-top: .22rem; color: var(--muted); font-size: .58rem; }
.topic-card .next-movement { border-top-style: dashed; }
.topic-card .current-window { border-top-color: rgba(185, 134, 61, .7); background: rgba(185, 134, 61, .06); }
.topic-card .current-window span { color: var(--gold); font-weight: 700; letter-spacing: .08em; }
.topic-card .arrow-link { display: block; margin-top: 1rem; }
.card-actors { display: grid; gap: .35rem; margin: .15rem 0 .85rem; color: var(--muted); font-size: .59rem; }
.card-actors > span:first-child { color: var(--gold); font-size: .58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.card-actor { display: flex; min-width: 0; align-items: center; gap: .38rem; color: var(--ink-soft); line-height: 1.25; }
.card-actor i { display: inline-grid; width: 1.3rem; height: 1.3rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(185,134,61,.5); border-radius: 50%; color: var(--navy); background: var(--paper); font-size: .48rem; font-style: normal; font-weight: 800; }
.active-lead { display: grid; gap: .15rem; max-width: 31rem; margin: 1.1rem 0 0; padding-left: .85rem; border-left: 2px solid var(--gold); color: var(--ink-soft); font-size: .72rem; line-height: 1.4; }
.active-lead span { color: var(--gold); font-size: .58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.active-lead strong { color: var(--ink); font-size: .86rem; }
.active-lead small { color: var(--muted); font-size: .62rem; }
.small-empty { padding: 1rem 0; color: var(--muted); font-size: .78rem; }

/* Journey */
.journey-page { position: relative; overflow: hidden; background: var(--paper); }
.journey-page::before { position: absolute; top: 0; right: -150px; width: 520px; height: 520px; pointer-events: none; content: ''; opacity: .25; background: repeating-radial-gradient(circle at center, transparent 0 48px, rgba(185,134,61,.17) 49px 50px); mask-image: linear-gradient(135deg, rgba(0,0,0,.55), transparent 72%); }
.journey-hero { position: relative; z-index: 1; padding: 1.45rem 0 2.1rem; border-bottom: 1px solid var(--line); }
.journey-hero-inner { width: min(var(--content), calc(100% - 64px)); margin: 0 auto; }
.journey-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, .87fr); gap: 2.5rem; align-items: center; }
.journey-copy { min-width: 0; }
.journey-copy h1 { max-width: 680px; margin-bottom: .65rem; font-size: clamp(2.15rem, 4vw, 4rem); line-height: 1.08; }
.journey-copy.long-title h1 { display: -webkit-box; overflow: hidden; max-width: 680px; font-size: clamp(2rem, 3.1vw, 3.25rem); line-height: 1.1; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.journey-summary { max-width: 650px; margin-bottom: 1.15rem; color: var(--ink-soft); font-family: var(--serif); font-size: .9rem; line-height: 1.55; }
.summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.summary-card { min-height: 108px; padding: .9rem .85rem; border: 1px solid var(--line); background: rgba(255, 253, 249, .63); }
.summary-card h2 { margin-bottom: .45rem; color: var(--gold); font-family: var(--sans); font-size: .57rem; font-weight: 800; letter-spacing: .13em; line-height: 1.35; text-transform: uppercase; }
.summary-card p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--ink); font-size: .73rem; font-weight: 600; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.summary-card p.muted { color: var(--muted); font-weight: 400; }
.change-line { margin-top: .8rem; padding: .55rem .75rem; border-left: 2px solid var(--gold); color: var(--ink-soft); background: rgba(234, 219, 193, .42); font-size: .7rem; line-height: 1.45; }
.change-line strong { color: var(--ink); }
.network-panel { min-width: 0; padding: 1rem 0 .2rem; }
.network-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.network-heading h2 { margin-bottom: 0; font-family: var(--sans); font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.network-heading .eyebrow { margin: 0; font-size: .58rem; }
.actor-map { position: relative; min-height: 290px; margin-top: .55rem; overflow: hidden; border: 1px solid rgba(185, 134, 61, .27); background: rgba(255, 253, 249, .37); }
.actor-map::before, .actor-map::after { position: absolute; top: 50%; left: 50%; content: ''; border: 1px solid rgba(185, 134, 61, .3); border-radius: 50%; transform: translate(-50%, -50%); }
.actor-map::before { width: 172px; height: 172px; }
.actor-map::after { width: 270px; height: 270px; border-color: rgba(185, 134, 61, .17); }
.network-center { position: absolute; z-index: 3; top: 50%; left: 50%; display: flex; width: 128px; min-height: 128px; align-items: center; justify-content: center; flex-direction: column; padding: .8rem; border-radius: 50%; color: var(--white); background: var(--navy); text-align: center; transform: translate(-50%, -50%); }
.network-center span { margin-bottom: .35rem; color: rgba(255,255,255,.68); font-size: .54rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.network-center strong { display: -webkit-box; overflow: hidden; max-width: 105px; font-family: var(--serif); font-size: .77rem; font-weight: 400; line-height: 1.22; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.actor-node { position: absolute; z-index: 4; display: flex; max-width: 128px; min-height: 45px; align-items: center; justify-content: center; padding: .42rem .55rem; border: 1px solid rgba(185, 134, 61, .58); border-radius: 999px; color: var(--ink); background: rgba(255,253,249,.94); box-shadow: 0 4px 12px rgba(20,44,69,.05); text-align: center; }
.actor-node strong { display: -webkit-box; overflow: hidden; font-size: .57rem; font-weight: 800; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.actor-node small { display: block; margin-top: .18rem; color: var(--gold); font-size: .48rem; line-height: 1.2; }
.actor-node.authority { border-color: rgba(20, 141, 120, .55); }
.actor-node:nth-of-type(1) { top: 7%; left: 50%; transform: translateX(-50%); }
.actor-node:nth-of-type(2) { top: 28%; right: 4%; }
.actor-node:nth-of-type(3) { right: 8%; bottom: 8%; }
.actor-node:nth-of-type(4) { bottom: 7%; left: 50%; transform: translateX(-50%); }
.actor-node:nth-of-type(5) { bottom: 8%; left: 8%; }
.actor-node:nth-of-type(6) { top: 28%; left: 4%; }
.network-note { margin: .55rem 0 0; color: var(--muted); font-size: .61rem; line-height: 1.4; }
.phase-map-panel { margin-top: 0; }
.phase-map-intro { max-width: 760px; margin: -.35rem 0 1rem; color: var(--ink-soft); font-size: .72rem; line-height: 1.5; }
.phase-map-track { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .55rem; overflow-x: auto; padding: .2rem 0 .35rem; }
.phase-map-phase { min-width: 0; border-top: 2px solid var(--gold); background: rgba(255,253,249,.62); transition: opacity .18s, transform .18s, box-shadow .18s; }
.phase-map-phase.expected { border-top-color: #969b98; }
.phase-map-phase-button { display: grid; width: 100%; min-height: 108px; gap: .35rem; padding: .8rem .75rem .7rem; border: 0; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.phase-map-phase-button strong { font-family: var(--serif); font-size: .86rem; font-weight: 400; line-height: 1.25; }
.phase-map-phase-button small { color: var(--muted); font-size: .59rem; }
.phase-state { color: var(--gold); font-size: .57rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.phase-map-phase.expected .phase-state { color: #7d8582; }
.phase-actor-links { display: grid; gap: .35rem; padding: 0 .55rem .65rem; }
.phase-actor-link, .phase-map-actor { display: grid; gap: .15rem; padding: .48rem .55rem; border: 1px solid var(--line); color: var(--ink); background: var(--white); text-align: left; cursor: pointer; transition: opacity .18s, border-color .18s, box-shadow .18s; }
.phase-actor-link.confirmed { border-left: 3px solid var(--teal); }
.phase-actor-link.expected { border-left: 3px dashed #9b9e9a; }
.phase-actor-link strong, .phase-map-actor strong { font-size: .64rem; font-weight: 800; line-height: 1.3; }
.phase-actor-link span, .phase-map-actor span, .phase-map-actor small { color: var(--muted); font-size: .57rem; line-height: 1.35; }
.phase-empty { display: block; padding: .5rem; color: var(--muted); font-size: .59rem; line-height: 1.35; }
.phase-map-actors { margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--line); }
.phase-map-actors > .eyebrow { margin-bottom: .55rem; }
.phase-map-actor-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.phase-map-actor:hover, .phase-map-phase-button:hover, .phase-actor-link:hover { border-color: var(--gold); box-shadow: 0 5px 15px rgba(20,44,69,.07); }
.phase-map-phase.is-highlight, .phase-actor-link.is-highlight, .phase-map-actor.is-highlight { box-shadow: 0 0 0 2px rgba(185,134,61,.55), 0 8px 20px rgba(20,44,69,.08); }
.phase-map-panel .is-dimmed { opacity: .25; }
.phase-map-drawer { position: relative; margin-top: .85rem; padding: 1rem 2.4rem 1rem 1rem; border: 1px solid var(--gold-soft); background: rgba(234,219,193,.32); }
.phase-map-drawer h3 { margin-bottom: .35rem; font-size: 1.05rem; }
.phase-map-drawer p { margin-bottom: 0; color: var(--ink-soft); font-size: .68rem; line-height: 1.5; }
.phase-map-drawer .detail-close { top: .45rem; }
.phase-drawer-evidence { margin-top: .45rem; color: var(--gold) !important; font-size: .62rem !important; }
.phase-map-disclaimer { margin: .85rem 0 0; color: var(--muted); font-size: .6rem; line-height: 1.45; }
.journey-body { position: relative; z-index: 1; width: min(var(--content), calc(100% - 64px)); margin: 0 auto; padding: 1.8rem 0 4.2rem; }
.section-panel { padding: 1.25rem 1.3rem; border: 1px solid var(--line); background: rgba(255, 253, 249, .5); }
.section-panel + .section-panel { margin-top: 1rem; }
.panel-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .95rem; }
.panel-heading h2 { margin-bottom: 0; font-size: 1.45rem; }
.panel-heading .eyebrow { margin-bottom: .25rem; }

/* Timeline */
.timeline-panel { padding: 1.2rem 1.3rem 1.35rem; }
.timeline-track { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); gap: .3rem; padding-top: 1.4rem; }
.timeline-track::before { position: absolute; top: 1.65rem; right: 1%; left: 1%; height: 1px; content: ''; background: linear-gradient(90deg, var(--gold) 0 53%, #a8aaa7 53% 100%); }
.timeline-event { position: relative; min-width: 0; padding: 1.05rem .6rem .1rem; }
.timeline-event::before { position: absolute; z-index: 2; top: .06rem; left: .6rem; width: .55rem; height: .55rem; content: ''; border: 2px solid var(--gold); border-radius: 50%; background: var(--paper); }
.timeline-event.current::before { width: .74rem; height: .74rem; top: -.04rem; border-color: var(--navy); background: var(--navy); box-shadow: 0 0 0 4px rgba(20, 141, 120, .16); }
.timeline-event.expected::before { border-color: #9b9e9a; background: #9b9e9a; }
.timeline-event time { display: block; margin-bottom: .35rem; color: var(--muted); font-size: .61rem; font-weight: 800; }
.timeline-event h3 { display: -webkit-box; overflow: hidden; min-height: 2.7em; margin-bottom: .3rem; font-size: .82rem; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.timeline-event p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--ink-soft); font-size: .65rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.timeline-event.expected h3, .timeline-event.expected p { color: #777b79; }
.event-source { display: inline-block; margin-top: .35rem; color: var(--gold); font-size: .61rem; font-weight: 800; }
.timeline-legend { display: flex; flex-wrap: wrap; gap: 1.1rem; margin-top: 1.05rem; color: var(--muted); font-size: .61rem; }
.timeline-legend span::before { display: inline-block; width: .5rem; height: .5rem; margin-right: .35rem; content: ''; border: 1px solid var(--gold); border-radius: 50%; vertical-align: -.02rem; }
.timeline-legend .legend-current::before { border-color: var(--navy); background: var(--navy); }
.timeline-legend .legend-future::before { border-color: #9b9e9a; background: #9b9e9a; }

/* Signals and key institutions */
.signals-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: 1rem; margin-top: 1rem; }
.signals-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.signal-card { display: flex; min-height: 132px; flex-direction: column; padding: .9rem .95rem; border: 1px solid var(--line); background: rgba(255,253,249,.72); }
.signal-card .signal-type { margin-bottom: .7rem; color: var(--gold); font-size: .57rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.signal-card.context .signal-type { color: var(--teal); }
.signal-card h3 { display: -webkit-box; overflow: hidden; margin-bottom: .65rem; font-size: .85rem; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.signal-card p { display: -webkit-box; overflow: hidden; margin: 0 0 .55rem; color: var(--ink-soft); font-size: .64rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.signal-card small { margin-top: auto; color: var(--muted); font-size: .6rem; line-height: 1.4; }
.key-institutions { padding: 1.1rem 1.15rem; border: 1px solid var(--line); background: rgba(255,253,249,.57); }
.key-institutions h2 { margin-bottom: .85rem; font-family: var(--sans); font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.key-row { display: grid; grid-template-columns: 1fr auto; gap: .8rem; padding: .65rem 0; border-top: 1px solid var(--line); }
.key-row:first-of-type { border-top: 0; }
.key-row strong { display: block; font-size: .7rem; line-height: 1.35; }
.key-row span { color: var(--muted); font-size: .61rem; line-height: 1.35; text-align: right; }
.source-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; }

/* Existing rich projections */
.position-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.position-card { min-width: 0; padding: .9rem; border: 1px solid var(--line); background: rgba(255,253,249,.72); }
.position-meta { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: .6rem; }
.position-meta time { color: var(--muted); font-size: .6rem; }
.position-card h3 { margin-bottom: .3rem; font-size: .95rem; }
.position-card p { margin-bottom: .55rem; color: var(--ink-soft); font-size: .72rem; line-height: 1.45; }
.position-evidence, .position-context, .position-note { display: block; color: var(--muted); font-size: .62rem; line-height: 1.45; }
.position-source { display: inline-block; margin-top: .55rem; color: var(--gold); font-size: .64rem; font-weight: 800; }
.tag { display: inline-flex; width: fit-content; padding: .28rem .48rem; color: var(--teal); background: var(--teal-soft); font-size: .58rem; font-weight: 800; letter-spacing: .04em; }
.tag.orange { color: #9b6426; background: var(--gold-soft); }
.tag.neutral { color: var(--ink-soft); background: var(--gray-soft); }
.position-group + .position-group { margin-top: 1rem; }
.position-history { margin-top: .75rem; border-top: 1px solid var(--line); }
.position-history summary { padding: .7rem 0; color: var(--gold); cursor: pointer; font-size: .67rem; font-weight: 800; }
.position-history ol { display: grid; gap: .5rem; margin: 0; padding: 0 0 .25rem 1rem; }
.position-history li { color: var(--ink-soft); font-size: .68rem; line-height: 1.4; }
.position-history time, .position-history strong, .position-history span { display: block; }
.position-history time { color: var(--muted); font-size: .6rem; }
.position-history strong { margin-top: .15rem; color: var(--ink); }

/* Archive / retained secondary routes */
.archive-page, .search-page { width: min(var(--content), calc(100% - 64px)); margin: 0 auto; padding: 3.4rem 0 5rem; }
.archive-header, .search-header { max-width: 800px; padding-bottom: 1.65rem; border-bottom: 1px solid var(--line); }
.archive-header h1, .search-header h1 { margin-bottom: .65rem; font-size: clamp(2.4rem, 4.4vw, 4.25rem); }
.archive-list { display: grid; gap: .75rem; margin-top: 1.35rem; }
.archive-row { display: grid; grid-template-columns: 1fr auto; gap: 1rem; padding: 1.05rem 1.15rem; border: 1px solid var(--line); background: rgba(255,253,249,.72); }
.archive-row h3 { margin-bottom: .35rem; font-size: 1.05rem; }
.archive-row p { margin: 0; color: var(--ink-soft); font-size: .7rem; line-height: 1.4; }
.archive-row aside { min-width: 110px; text-align: right; }
.filter-bar { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.2rem 0; }
.filter-button { min-height: 32px; padding: .4rem .65rem; border: 1px solid var(--line); color: var(--ink-soft); background: transparent; font-size: .65rem; font-weight: 800; }
.filter-button:hover, .filter-button.active { border-color: var(--gold); color: var(--gold); }
.search-form { display: flex; max-width: 520px; margin-top: 1.2rem; }
.search-form input { flex: 1; min-width: 0; min-height: 40px; padding: .6rem .75rem; border: 1px solid var(--line); background: var(--white); }
.search-form button { min-height: 40px; padding: .6rem .85rem; border: 1px solid var(--navy); color: var(--white); background: var(--navy); font-size: .68rem; font-weight: 800; }
.result-list { display: grid; gap: .65rem; margin-top: 1.25rem; }
.result-card { display: grid; grid-template-columns: 110px 1fr auto; gap: .8rem; align-items: center; padding: .9rem 1rem; border: 1px solid var(--line); background: rgba(255,253,249,.72); }
.result-card h3 { margin: 0; font-size: .92rem; }
.result-card p { margin: .2rem 0 0; color: var(--ink-soft); font-size: .68rem; }
.institution-card { display: block; padding: 1rem; border: 1px solid var(--line); background: rgba(255,253,249,.72); }
.error-card { max-width: 620px; margin: 4rem auto; padding: 1.75rem; border: 1px solid #dcbca1; background: #f5e8dc; }
.error-card h1 { font-size: 2.4rem; }
.error-card p { color: #71523f; font-size: .82rem; line-height: 1.55; }
.error-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.button { display: inline-flex; align-items: center; min-height: 36px; padding: .5rem .75rem; color: var(--white); background: var(--navy); font-size: .68rem; font-weight: 800; }
.button.secondary { color: var(--navy); background: transparent; border: 1px solid var(--navy); }

.site-footer { color: rgba(255,255,255,.72); background: var(--navy); }
.footer-inner { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 2rem; width: min(var(--content), calc(100% - 64px)); min-height: 94px; margin: 0 auto; }
.footer-brand { display: inline-flex; align-items: center; width: 145px; }
.footer-brand img { display: block; width: 145px; filter: brightness(0) invert(1); opacity: .9; }
.footer-links { display: flex; flex-wrap: wrap; gap: 1.45rem; font-size: .65rem; font-weight: 600; }
.footer-links a:hover { color: #fff; }
.footer-copy { color: rgba(255,255,255,.5); font-size: .62rem; }

@media (max-width: 1040px) {
  .area-grid, .home-areas .area-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-inner { grid-template-columns: 1fr; align-items: end; }
  .home-areas { max-width: 760px; }
  .journey-top { grid-template-columns: minmax(0, 1fr) minmax(340px, .8fr); gap: 1.4rem; }
  .signals-layout { grid-template-columns: 1fr; }
  .key-institutions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 .8rem; }
  .key-institutions h2 { grid-column: 1 / -1; }
}

@media (max-width: 780px) {
  .header-inner, .container, .home-inner, .area-hero-inner, .area-content, .journey-hero-inner, .journey-body, .archive-page, .search-page, .footer-inner { width: min(100% - 32px, var(--content)); }
  .header-inner { min-height: 68px; }
  .brand { min-width: 0; }
  .brand img { width: 166px; }
  .primary-nav { position: absolute; top: 68px; right: 16px; left: 16px; display: none; height: auto; flex-direction: column; align-items: stretch; gap: 0; padding: .35rem; border: 1px solid var(--line); background: var(--white); box-shadow: 0 14px 30px rgba(20,44,69,.1); }
  .primary-nav.open { display: flex; }
  .primary-nav a { height: auto; padding: .75rem; border-bottom: 1px solid var(--line); }
  .primary-nav a:last-child { border-bottom: 0; }
  .primary-nav a::after { display: none; }
  .menu-toggle { display: block; }
  .home-hero { min-height: 0; background-image: linear-gradient(180deg, rgba(247,244,238,.92) 0%, rgba(247,244,238,.78) 54%, rgba(247,244,238,.28) 100%), url('/atlas/assets/atlas-institutional-hero.webp'); background-position: center, 68% center; }
  .home-inner { min-height: 0; padding: 3.1rem 0 2.2rem; }
  .home-copy h1 { font-size: clamp(2.35rem, 11vw, 3.7rem); }
  .home-copy .lede { font-size: .88rem; }
  .area-grid, .home-areas .area-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .area-hero { min-height: 0; padding: 1.45rem 0 1.7rem; background-image: radial-gradient(circle at 78% 24%, rgba(17,47,76,.035) 0 1px, transparent 1.5px), repeating-radial-gradient(circle at 78% 24%, transparent 0 56px, rgba(183,135,55,.07) 57px 58px); background-position: center; background-size: auto, 460px 460px; }
  .area-hero h1 { font-size: clamp(2.3rem, 12vw, 3.4rem); }
  .area-content { padding: 1.55rem 0 3rem; }
  .topic-card-grid { grid-template-columns: 1fr; }
  .topic-card { min-height: 0; padding: 1.2rem 1.15rem 1.1rem; }
  .journey-hero { padding-top: 1.1rem; }
  .journey-top { grid-template-columns: 1fr; gap: 1.35rem; }
  .journey-copy h1, .journey-copy.long-title h1 { font-size: clamp(2rem, 10vw, 3.1rem); }
  .summary-grid { grid-template-columns: 1fr; gap: .55rem; }
  .summary-card { min-height: 0; }
  .summary-card p { -webkit-line-clamp: 4; }
  .network-panel { padding-top: .2rem; }
  .actor-map { min-height: 310px; }
  .phase-map-track { display: flex; align-items: stretch; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: .65rem; }
  .phase-map-phase { flex: 0 0 82%; scroll-snap-align: start; }
  .phase-map-actor-grid { grid-template-columns: 1fr; }
  .journey-body { padding-top: 1.25rem; }
  .section-panel, .timeline-panel { padding: 1rem; }
  .timeline-track { display: block; padding: .2rem 0 0 1rem; }
  .timeline-track::before { top: .25rem; bottom: .5rem; left: .28rem; width: 1px; height: auto; background: linear-gradient(180deg, var(--gold) 0 53%, #a8aaa7 53% 100%); }
  .timeline-event { padding: .2rem 0 1rem 1rem; }
  .timeline-event::before { top: .2rem; left: -.99rem; }
  .timeline-event.current::before { top: .1rem; left: -1.08rem; }
  .signals-grid, .source-list { grid-template-columns: 1fr; }
  .key-institutions { display: block; }
  .key-institutions h2 { margin-bottom: .5rem; }
  .key-row span { text-align: right; }
  .position-grid { grid-template-columns: 1fr; }
  .archive-page, .search-page { padding-top: 2.3rem; }
  .archive-row, .result-card { grid-template-columns: 1fr; gap: .55rem; }
  .archive-row aside { text-align: left; }
  .footer-inner { display: flex; align-items: flex-start; flex-direction: column; gap: 1rem; padding: 1.6rem 0; }
  .footer-links { gap: .65rem 1rem; }
}

/* C9A: the Lobby dossier uses the shared procedure rail.  These compact
 * additions keep its conditional branches and two-track context readable at
 * 390px without reintroducing a second roadmap renderer. */
.lobby-page .lobby-procedure-block > .topic-procedure { margin: 0; }
.procedure-phase .phase-event a { display: inline-flex; margin-right: .55rem; color: var(--gold); font-size: .58rem; font-weight: 800; }
.procedure-phase .phase-event.phase-procedural-basis { border-left-color: #8b918e; }
.procedure-phase .phase-event.phase-unknown { border-left-color: #b7b0a5; }
.procedure-branches { margin-top: .8rem; padding: .7rem .8rem; border-left: 2px solid #8b918e; background: rgba(236,235,231,.7); }
.procedure-branches-label { margin: 0 0 .45rem; color: #727977; font-size: .55rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.procedure-branches-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.procedure-branch { display: grid; gap: .22rem; padding: .5rem .55rem; border-top: 1px solid rgba(20,44,69,.14); }
.procedure-branch span { color: #727977; font-size: .5rem; font-weight: 800; letter-spacing: .08em; }
.procedure-branch strong { font-size: .68rem; line-height: 1.3; }
.procedure-branch p { margin: 0; color: var(--ink-soft); font-size: .59rem; line-height: 1.4; }

/* C16.10: actor interventions use the same Atlas typographic hierarchy as
 * the dossier. Titles are serif; state, actor, verb and evidence are sans.
 * No per-drawer font or fallback is introduced. */
.topic-inline-drawer h3,
.topic-actor-drawer h3,
.explorer-drawer h3 { font-family: var(--serif); font-size: 1.35rem; font-weight: 400; }
.topic-inline-drawer .topic-actor-detail-row,
.topic-actor-drawer .topic-relation-row,
.explorer-drawer .explorer-drawer-list li { display: grid; grid-template-columns: 1fr; justify-content: initial; gap: .18rem; }
.topic-actor-detail-title { color: var(--ink); font-family: var(--serif); font-size: .82rem; font-weight: 400; line-height: 1.35; }
.topic-actor-detail-status,
.topic-actor-detail-actor,
.topic-actor-detail-verb,
.topic-inline-drawer .topic-evidence-link,
.topic-actor-drawer .topic-evidence-link { color: var(--ink-soft); font-family: var(--sans); font-size: .64rem; line-height: 1.4; }
.topic-actor-detail-status { color: var(--gold); font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.topic-actor-detail-verb { color: var(--navy); font-weight: 800; }
.topic-inline-drawer .topic-actor-detail-row .drawer-label { margin-top: 0; }
.phase-procedural-basis p { font-family: var(--sans); font-size: .58rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.lobby-track-compare { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: .8rem; }
.lobby-track-compare article { padding: .7rem; border: 1px solid var(--line); background: rgba(255,255,255,.66); }
.lobby-track-compare h3 { margin: .25rem 0 .4rem; font-size: .76rem; line-height: 1.35; }
.lobby-track-compare p:not(.eyebrow) { margin: 0 0 .45rem; color: var(--ink-soft); font-size: .62rem; line-height: 1.45; }
@media (max-width: 780px) {
  .procedure-branches-grid, .lobby-track-compare { grid-template-columns: 1fr; }
  .lobby-page .topic-procedure .procedure-rail { overflow: visible; }
  .lobby-page .topic-procedure .procedure-phase { min-width: 0; }
}

/* V3.15: Topic Experience V2.  The dossier is an editorial sequence, not a
   stack of independent dashboards.  Keep the page light and let the
   procedure rail carry the structure. */
.topic-block { position: relative; border-top: 1px solid var(--line); padding: 1.7rem 0 1.9rem; }
.topic-block:first-child { border-top: 0; }
.topic-block-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .95rem; }
.topic-block-heading h2 { margin: 0; font-size: clamp(1.5rem, 2.3vw, 2.15rem); }
.topic-block-heading .eyebrow { margin-bottom: .3rem; }
.topic-block-note { color: var(--muted); font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.topic-hero-block { width: min(var(--content), calc(100% - 64px)); margin: 0 auto; padding: 1.35rem 0 1.55rem; }
.topic-hero-block .breadcrumb { margin-bottom: 1.8rem; }
.topic-hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(400px, .95fr); gap: 4rem; align-items: end; }
.topic-hero-copy { min-width: 0; }
.topic-hero-copy h1 { max-width: 820px; margin-bottom: .7rem; font-size: clamp(2.6rem, 4.6vw, 4.8rem); line-height: 1.03; text-wrap: balance; }
.topic-official-title { display: grid; gap: .18rem; max-width: 760px; margin: -.15rem 0 .85rem; }
.topic-official-title span { color: var(--gold); font-size: .56rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.topic-official-title strong { color: var(--muted); font-size: .75rem; font-weight: 600; line-height: 1.4; }
.topic-lede { max-width: 720px; margin: 0; color: var(--ink-soft); font-family: var(--serif); font-size: .96rem; line-height: 1.55; }
.topic-now-line { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-top: 1.25rem; color: var(--ink); font-size: .72rem; line-height: 1.45; }
.topic-now-line b { color: var(--teal); font-size: .58rem; letter-spacing: .14em; }
.topic-status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 4px rgba(20,141,120,.12); }
.topic-now-actor { color: var(--muted); }
.topic-amendment-badge, .phase-badge { display: inline-flex; width: fit-content; align-items: center; padding: .18rem .34rem; border: 1px solid rgba(185,134,61,.55); color: var(--gold); background: rgba(185,134,61,.08); font-size: .52rem; font-weight: 800; letter-spacing: .08em; line-height: 1.2; }
.topic-hero-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.topic-hero-facts article { min-width: 0; padding: .8rem .9rem .75rem 0; border-bottom: 1px solid var(--line); }
.topic-hero-facts article:nth-child(even) { padding-right: 0; padding-left: .9rem; border-left: 1px solid var(--line); }
.topic-hero-facts p { margin: 0 0 .28rem; color: var(--gold); font-size: .52rem; font-weight: 800; letter-spacing: .14em; }
.topic-hero-facts strong { display: -webkit-box; overflow: hidden; color: var(--ink); font-size: .71rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.topic-hero-facts small { display: block; margin-top: .28rem; color: var(--muted); font-size: .59rem; line-height: 1.35; }
.topic-hero-facts .topic-fact-next { border-bottom-style: dashed; }
.topic-hero-facts .topic-fact-window { background: rgba(185,134,61,.06); }
.topic-hero-facts .topic-fact-why { grid-column: 1 / -1; padding-right: 0; border-left: 0; }
.topic-hero-facts .topic-fact-why strong { max-width: 620px; font-weight: 500; }
.topic-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.35rem; margin-top: 1.15rem; }
.text-link { color: var(--gold); font-size: .68rem; font-weight: 800; }
.text-link span { margin-left: .35rem; font-size: 1rem; }
.muted-link { color: var(--ink-soft); font-size: .65rem; font-weight: 700; }
.topic-hero-actions .muted-link { color: var(--muted); }
.topic-decision-brief { border-top: 2px solid var(--gold); }
.topic-decision-brief .topic-block-heading { align-items: start; }
.topic-decision-brief-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.topic-decision-brief-grid article { min-width: 0; padding: .82rem .82rem .72rem 0; border-bottom: 1px solid var(--line); }
.topic-decision-brief-grid article + article { padding-left: .82rem; border-left: 1px solid var(--line); }
.topic-decision-brief-grid p { margin: 0 0 .34rem; color: var(--gold); font-size: .52rem; font-weight: 800; letter-spacing: .1em; line-height: 1.25; text-transform: uppercase; }
.topic-decision-brief-grid strong { display: block; color: var(--ink); font-size: .67rem; font-weight: 600; line-height: 1.42; }
.topic-decision-brief-source { display: inline-block; margin-top: .72rem; color: var(--gold); font-size: .6rem; font-weight: 800; }
.journey-body { padding-top: .4rem; }
.journey-body > .topic-block { width: min(var(--content), calc(100% - 64px)); margin-right: auto; margin-left: auto; }
.journey-body > .topic-block + .topic-block { margin-top: 0; }
.procedure-rail-wrap, .explorer-spine-wrap { overflow-x: auto; padding: .35rem 0 .55rem; scrollbar-color: var(--gold-soft) transparent; }
.procedure-rail { display: grid; grid-template-columns: repeat(var(--phase-count, 6), minmax(165px, 1fr)); gap: .55rem; min-width: 100%; }
.procedure-more { margin-top: .65rem; border-top: 1px solid rgba(20,44,69,.11); }
.procedure-more summary { padding: .65rem 0; color: var(--gold, #9e6f2a); font-size: .68rem; font-weight: 800; cursor: pointer; list-style: none; }
.procedure-more summary::-webkit-details-marker { display: none; }
.procedure-more summary::after { content: '＋'; float: right; }
.procedure-more[open] summary::after { content: '−'; }
.procedure-rail-deep { padding-top: .65rem; }
.procedure-tracks { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .8rem; }
.procedure-track { display: grid; min-width: 0; gap: .12rem; padding: .45rem .6rem; border: 1px solid var(--line); border-left: 2px solid var(--gold); background: rgba(255,253,249,.58); }
.procedure-track b { overflow: hidden; max-width: 420px; color: var(--ink); font-size: .59rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.procedure-track small { color: var(--muted); font-size: .5rem; line-height: 1.3; }
.procedure-phase { min-width: 165px; border-top: 2px solid var(--gold); background: rgba(255,253,249,.38); transition: opacity .18s, box-shadow .18s, transform .18s; }
.procedure-phase.confirmed { border-top-color: var(--teal); }
.procedure-phase.current { border-top-color: var(--navy); background: rgba(20,44,69,.045); box-shadow: inset 0 -2px 0 var(--navy); }
.procedure-phase.expected { border-top-style: dashed; border-top-color: #8f9893; }
.procedure-phase.unknown { border-top-style: dashed; border-top-color: #b7b0a5; background: rgba(183,176,165,.08); }
.procedure-phase-head { display: grid; width: 100%; min-height: 104px; gap: .35rem; padding: .75rem .72rem .58rem; border: 0; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.procedure-phase-head:hover, .procedure-phase-head:focus-visible { background: rgba(255,255,255,.7); outline-offset: -3px; }
.phase-index { color: var(--gold); font-size: .52rem; font-weight: 800; letter-spacing: .13em; }
.procedure-phase.confirmed .phase-index { color: var(--teal); }
.procedure-phase.current .phase-index { color: var(--navy); }
.procedure-phase.expected .phase-index { color: var(--muted); }
.procedure-phase.unknown .phase-index { color: #8b8174; }
.procedure-phase-head strong { display: -webkit-box; overflow: hidden; min-height: 2.7em; font-family: var(--serif); font-size: .83rem; font-weight: 400; line-height: 1.34; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.procedure-phase-head time, .phase-date { color: var(--muted); font-size: .59rem; line-height: 1.35; }
.procedure-phase-head .phase-deadline { color: var(--navy); font-size: .59rem; font-weight: 700; line-height: 1.35; }
.procedure-phase-head .phase-badge { margin-top: .05rem; }
.phase-event { margin: 0 .72rem .55rem; padding: .55rem .55rem .5rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.phase-event p { margin: 0 0 .25rem; color: var(--gold); font-size: .5rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.phase-event h3 { display: -webkit-box; overflow: hidden; margin: 0 0 .25rem; font-size: .68rem; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.phase-event time { color: var(--muted); font-size: .57rem; }
.phase-event a { display: block; margin-top: .25rem; color: var(--gold); font-size: .57rem; font-weight: 800; }
.phase-actors { display: grid; gap: .35rem; padding: 0 .72rem .72rem; }
.procedure-actor-chip { display: grid; gap: .16rem; width: 100%; padding: .43rem .48rem; border: 1px solid var(--line); border-left: 2px solid var(--teal); color: var(--ink); background: var(--white); text-align: left; cursor: pointer; transition: opacity .18s, border-color .18s, box-shadow .18s; }
.procedure-actor-chip.expected { border-left-style: dashed; border-left-color: #969d99; }
.procedure-actor-chip:hover, .procedure-actor-chip:focus-visible { border-color: var(--gold); outline-offset: -2px; }
.procedure-actor-chip span { overflow: hidden; font-size: .61rem; font-weight: 800; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.procedure-actor-chip small { color: var(--muted); font-size: .53rem; line-height: 1.3; }
.phase-no-actors, .explorer-no-actor { margin: 0; padding: .2rem 0; color: var(--muted); font-size: .56rem; line-height: 1.4; }
.procedure-legend { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin-top: .75rem; color: var(--muted); font-size: .59rem; }
.procedure-legend span::before { display: inline-block; width: 1.1rem; height: 1px; margin: 0 .35rem .18rem 0; content: ''; background: var(--teal); }
.procedure-legend .legend-current::before { height: 5px; border-radius: 50%; background: var(--navy); }
.procedure-legend .legend-expected::before { background: transparent; border-top: 1px dashed #969d99; }
.procedure-legend .legend-unknown::before { background: transparent; border-top: 1px dashed #b7b0a5; }
.procedure-disclaimer { max-width: 820px; margin: .65rem 0 0; color: var(--muted); font-size: .58rem; line-height: 1.45; }
.procedure-phase.is-highlight, .procedure-actor-chip.is-highlight, .topic-actor-preview-row.is-highlight { box-shadow: 0 0 0 2px rgba(185,134,61,.45), 0 8px 20px rgba(20,44,69,.08); }
.topic-block .is-dimmed { opacity: .24; }
.topic-actors-preview .topic-block-heading { align-items: end; }
.topic-actor-preview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.topic-actor-preview-row { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, .9fr); gap: .55rem; align-items: center; min-width: 0; padding: .65rem .7rem; border: 1px solid var(--line); color: var(--ink); background: rgba(255,253,249,.56); text-align: left; cursor: pointer; transition: opacity .18s, border-color .18s, box-shadow .18s; }
.topic-actor-preview-row:hover, .topic-actor-preview-row:focus-visible { border-color: var(--gold); outline-offset: -2px; }
.topic-actor-preview-row.is-current { border-left: 3px solid var(--navy); }
.topic-actor-mark { display: inline-grid; width: 30px; height: 30px; place-items: center; overflow: hidden; border: 0; border-radius: 50%; color: var(--navy); background: transparent; box-shadow: none; font-size: .52rem; font-weight: 800; line-height: 1; text-align: center; }
.topic-actor-mark img { width: 100%; height: 100%; object-fit: contain; padding: 0; }
.topic-actor-mark .topic-actor-fallback { display: grid; width: 100%; height: 100%; place-items: center; align-content: center; gap: .12rem; line-height: 1; }
.topic-actor-mark .topic-actor-fallback b { font-size: .48rem; }
.topic-actor-mark .topic-actor-fallback small { font-size: .28rem; font-weight: 800; letter-spacing: .03em; }
.topic-actor-mark .identity-eu-council { color: #315e8f; }
.topic-actor-mark .identity-parliament { color: #244d89; }
.topic-actor-mark .identity-eu-agency { color: #246f9b; }
.explorer-actor-mark { display: inline-grid; width: 25px; height: 25px; place-items: center; overflow: hidden; border: 0; border-radius: 50%; color: var(--navy); background: transparent; box-shadow: none; font-size: .44rem; font-weight: 800; }
.explorer-actor-mark img { width: 100%; height: 100%; object-fit: contain; padding: 0; }
.topic-actor-copy { display: grid; min-width: 0; gap: .17rem; }
.topic-actor-copy strong { overflow: hidden; font-size: .66rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.topic-actor-copy small, .topic-actor-phases { overflow: hidden; color: var(--muted); font-size: .55rem; line-height: 1.35; text-overflow: ellipsis; }
.topic-actor-phases { text-align: right; }
.topic-inline-note { margin: .7rem 0 0; color: var(--muted); font-size: .59rem; line-height: 1.45; }
.topic-inline-roster { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.topic-inline-roster .topic-inline-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; min-width: 0; min-height: 66px; align-items: center; padding: .6rem .7rem; border: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink); background: rgba(255,253,249,.56); text-align: left; cursor: pointer; }
.topic-inline-roster .topic-inline-row:hover, .topic-inline-roster .topic-inline-row:focus-visible { border-color: var(--gold); outline-offset: -2px; }
.topic-inline-roster .topic-inline-row.is-current { box-shadow: inset 3px 0 0 var(--navy); }
.topic-actor-phase-map { position: relative; display: grid; gap: .35rem; padding: .85rem .7rem .7rem; border: 1px solid rgba(20,44,69,.11); background: linear-gradient(90deg, rgba(238,247,244,.28), rgba(255,253,249,.82) 50%, rgba(251,246,235,.3)); overflow: hidden; }
.topic-actor-phase-map::before { content: ''; position: absolute; top: 2.75rem; bottom: .7rem; left: 50%; width: 1px; background: linear-gradient(to bottom, rgba(20,141,120,.28), rgba(184,137,59,.2)); pointer-events: none; }
.topic-actor-phase-map-intro { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: .8rem; margin: 0 0 .35rem; color: var(--muted); font-size: .55rem; letter-spacing: .06em; text-transform: uppercase; }
.topic-map-key::before { content: ''; display: inline-block; width: 20px; margin: 0 .34rem .16rem 0; border-top: 2px solid currentColor; vertical-align: middle; }
.topic-map-key.confirmed { color: var(--teal); }
.topic-map-key.expected { color: var(--gold); }
.topic-map-key.expected::before { border-top-style: dashed; }
.topic-phase-map-row { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) 34px minmax(190px, .7fr) 34px minmax(0, 1fr); align-items: center; min-height: 76px; }
.topic-phase-map-lane { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; min-width: 0; }
.topic-phase-map-lane.left { justify-content: flex-end; }
.topic-phase-map-lane.right { justify-content: flex-start; }
.topic-phase-map-actor { display: flex; min-width: 0; align-items: center; gap: .38rem; padding: .42rem .46rem; border: 1px solid rgba(20,44,69,.12); border-radius: 2px; color: var(--ink); background: rgba(255,253,249,.94); text-align: left; cursor: pointer; transition: border-color .16s, box-shadow .16s, opacity .16s; }
.topic-phase-map-actor:hover, .topic-phase-map-actor:focus-visible, .topic-phase-map-actor.is-highlight { border-color: var(--gold); outline: 0; box-shadow: 0 5px 14px rgba(20,44,69,.08); }
.topic-phase-map-actor.expected { border-style: dashed; }
.topic-phase-map-actor.is-dimmed { opacity: .32; }
.topic-phase-map-actor .topic-actor-mark { flex: 0 0 25px; width: 25px; height: 25px; }
.topic-phase-map-actor .topic-actor-mark img { max-width: 19px; max-height: 19px; }
.topic-phase-map-actor > span:last-child { display: grid; min-width: 0; gap: .12rem; }
.topic-phase-map-actor strong { max-width: 132px; overflow: hidden; font-size: .62rem; font-weight: 700; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.topic-phase-map-actor small { color: var(--muted); font-size: .52rem; line-height: 1.2; }
.topic-phase-map-edge { position: relative; height: 1px; border-top: 1px solid rgba(20,141,120,.55); }
.topic-phase-map-edge.confirmed { border-color: rgba(20,141,120,.58); }
.topic-phase-map-edge.expected { border-top-style: dashed; border-color: rgba(184,137,59,.7); }
.topic-phase-map-phase { position: relative; z-index: 2; display: grid; min-height: 65px; align-content: center; gap: .18rem; padding: .58rem .65rem; border: 1px solid rgba(20,44,69,.16); color: var(--ink); background: rgba(255,253,249,.98); text-align: left; cursor: pointer; box-shadow: 0 6px 14px rgba(20,44,69,.06); transition: border-color .16s, box-shadow .16s, opacity .16s; }
.topic-phase-map-phase:hover, .topic-phase-map-phase:focus-visible, .topic-phase-map-phase.is-highlight { border-color: var(--gold); outline: 0; box-shadow: 0 8px 18px rgba(20,44,69,.1); }
.topic-phase-map-phase.is-dimmed { opacity: .35; }
.topic-phase-map-phase span { color: var(--gold); font-size: .49rem; font-weight: 800; letter-spacing: .11em; }
.topic-phase-map-phase.current { border-top: 2px solid var(--navy); }
.topic-phase-map-phase.current span { color: var(--navy); }
.topic-phase-map-phase strong { font-family: var(--serif); font-size: .94rem; font-weight: 400; line-height: 1.1; }
.topic-phase-map-phase small { color: var(--muted); font-size: .53rem; }
.topic-inline-actor-copy { display: grid; min-width: 0; gap: .16rem; margin-left: .55rem; }
.topic-inline-actor-copy strong { overflow: hidden; font-size: .65rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.topic-inline-actor-copy small, .topic-inline-actor-count { overflow: hidden; color: var(--muted); font-size: .54rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.topic-inline-actor-count { text-align: right; }
.topic-inline-arrow { color: var(--gold); font-size: .9rem; }
.topic-watch-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; padding: 0; margin: 0; list-style: none; border-top: 1px solid var(--line); }
.topic-watch-list li { display: grid; grid-template-columns: minmax(120px, .4fr) 1fr; gap: .8rem; padding: .7rem 0; border-bottom: 1px solid var(--line); }
.topic-watch-list b { color: var(--ink); font-size: .66rem; }
.topic-watch-list span { color: var(--ink-soft); font-size: .65rem; line-height: 1.4; }
.topic-evidence-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 2rem; }
.topic-subheading { margin: 0 0 .55rem; color: var(--gold); font-size: .55rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.topic-document-list, .topic-media-list { display: grid; gap: .45rem; }
.topic-document-row, .topic-media-row { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: .65rem; align-items: center; min-width: 0; padding: .62rem .7rem; border-bottom: 1px solid var(--line); color: var(--ink); }
.topic-document-row:first-child, .topic-media-row:first-child { border-top: 1px solid var(--line); }
.topic-document-row span, .topic-media-row span { color: var(--gold); font-size: .51rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.topic-media-row span { color: var(--teal); }
.topic-document-row strong, .topic-media-row strong { overflow: hidden; font-size: .66rem; line-height: 1.35; text-overflow: ellipsis; }
.topic-document-row small, .topic-media-row small { color: var(--muted); font-size: .56rem; text-align: right; white-space: nowrap; }
.topic-document-row.is-primary { background: rgba(185,134,61,.055); }
.topic-all-docs { display: inline-block; margin-top: .7rem; }
.topic-empty { max-width: 680px; margin: 0; color: var(--muted); font-size: .69rem; line-height: 1.5; }
.topic-related { display: grid; grid-template-columns: minmax(220px, .7fr) 1fr auto; gap: 1.4rem; align-items: end; padding: 1.25rem 0 0; border-top: 1px solid var(--line); }
.journey-body > .topic-related { width: min(var(--content), calc(100% - 64px)); margin-right: auto; margin-left: auto; }
.topic-related h2 { margin: 0; font-size: 1.3rem; }
.topic-related .eyebrow { margin-bottom: .3rem; }
.topic-related-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }
.topic-related-list a { display: grid; gap: .25rem; min-width: 0; padding: .58rem .65rem; border-left: 2px solid var(--gold); background: rgba(255,253,249,.45); }
.topic-related-list strong { overflow: hidden; font-size: .62rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.topic-related-list span { color: var(--muted); font-size: .55rem; }

/* V3.19: the topic preview is a compact actor × phase map, not a second
   flat actor directory.  Keep the full explorer as the deep surface. */
.topic-inline-map { overflow-x: auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.28); }
.topic-inline-map.is-unlinked { background: rgba(247,244,238,.62); }
.topic-inline-map.is-unlinked .topic-inline-cell { border-style: dotted; opacity: .58; }
.topic-inline-header, .topic-inline-row { display: grid; grid-template-columns: minmax(190px, .8fr) minmax(0, 2.2fr); min-width: 720px; }
.topic-inline-header { align-items: stretch; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .54rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.topic-inline-header > span { display: flex; align-items: end; padding: .65rem .75rem; }
.topic-inline-header > div { display: grid; grid-template-columns: repeat(var(--inline-phase-count), minmax(82px, 1fr)); }
.topic-inline-phase { display: grid; gap: .2rem; min-width: 0; padding: .55rem .48rem; border: 0; border-left: 1px solid var(--line); color: var(--ink-soft); background: transparent; text-align: left; cursor: pointer; }
.topic-inline-phase:hover, .topic-inline-phase:focus-visible { background: rgba(185,134,61,.07); outline-offset: -2px; }
.topic-inline-phase span { color: var(--gold); font-size: .48rem; }
.topic-inline-phase strong { overflow: hidden; font-size: .58rem; font-weight: 700; line-height: 1.25; text-overflow: ellipsis; }
.topic-inline-row { min-height: 58px; align-items: center; border-bottom: 1px solid rgba(20,44,69,.08); transition: background .18s, opacity .18s; }
.topic-inline-row:last-child { border-bottom: 0; }
.topic-inline-row.is-current { background: rgba(20,44,69,.035); box-shadow: inset 3px 0 0 var(--navy); }
.topic-inline-actor { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .55rem; align-items: center; min-width: 0; height: 100%; padding: .55rem .75rem; border: 0; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.topic-inline-actor:hover, .topic-inline-actor:focus-visible { background: rgba(255,255,255,.78); outline-offset: -3px; }
.topic-inline-actor > span:last-child { display: grid; min-width: 0; gap: .16rem; }
.topic-inline-actor strong { overflow: hidden; font-size: .65rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.topic-inline-actor small { overflow: hidden; color: var(--muted); font-size: .53rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.topic-inline-cells { display: grid; grid-template-columns: repeat(var(--inline-phase-count), minmax(82px, 1fr)); height: 100%; }
.topic-inline-cell { position: relative; display: grid; min-width: 0; place-items: center; border: 0; border-left: 1px solid rgba(20,44,69,.08); background: transparent; cursor: pointer; }
.topic-inline-cell i { display: block; width: 12px; height: 12px; border: 2px solid rgba(106,119,133,.28); border-radius: 50%; background: var(--paper); }
.topic-inline-cell.is-confirmed i { border-color: var(--teal); background: var(--teal); box-shadow: 0 0 0 4px rgba(20,141,120,.1); }
.topic-inline-cell.is-expected i { border-color: var(--gold); border-style: dashed; }
.topic-inline-cell.is-empty { pointer-events: none; }
.topic-inline-cell:hover, .topic-inline-cell:focus-visible, .topic-inline-cell.is-highlight { background: rgba(185,134,61,.09); outline-offset: -2px; }
.topic-inline-drawer { position: relative; margin-top: .8rem; padding: 1rem 1.1rem 1.1rem; border: 1px solid rgba(185,134,61,.38); background: rgba(255,255,255,.88); box-shadow: 0 10px 24px rgba(20,44,69,.07); }
.topic-inline-drawer.is-open { animation: topic-inline-drawer-in .16s ease-out; }
.topic-inline-drawer .detail-close { position: absolute; top: .55rem; right: .6rem; }
.topic-inline-drawer h3 { margin: .15rem 2rem .7rem 0; font-family: var(--serif); font-size: 1.35rem; font-weight: 400; }
.topic-inline-drawer-identity { display: flex; align-items: center; gap: .55rem; margin-bottom: .7rem; }
.topic-inline-drawer-identity p { margin: 0; color: var(--muted); font-size: .62rem; }
.topic-inline-drawer ul { display: grid; gap: .35rem; margin: 0 0 .8rem; padding: 0; list-style: none; }
.topic-inline-drawer li { display: flex; justify-content: space-between; gap: 1rem; padding: .4rem 0; border-top: 1px solid var(--line); font-size: .64rem; }
.topic-inline-drawer li span { color: var(--muted); text-align: right; }
.topic-inline-drawer .topic-actor-detail-row { display: grid; justify-content: initial; gap: .16rem; }
.topic-inline-drawer .topic-actor-detail-row .drawer-label { margin-top: .3rem; }
.topic-inline-drawer .topic-actor-detail-row .drawer-label:first-child { margin-top: 0; }
.topic-inline-drawer .topic-actor-detail-row span { text-align: left; }
@keyframes topic-inline-drawer-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 780px) {
  .topic-inline-map { overflow: visible; }
  .topic-inline-header { display: none; }
  .topic-inline-row { display: grid; grid-template-columns: 1fr; min-width: 0; gap: .35rem; padding: .45rem 0 .6rem; }
  .topic-inline-actor { padding: .35rem .5rem; }
  .topic-inline-cells { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem; height: auto; padding: 0 .5rem .1rem 2.8rem; }
  .topic-inline-cell { min-height: 34px; justify-items: start; padding: .25rem .35rem .25rem 1.2rem; border: 1px solid rgba(20,44,69,.1); background: rgba(255,255,255,.4); }
  .topic-inline-cell::before { position: absolute; top: .32rem; left: .32rem; max-width: calc(100% - 1.55rem); overflow: hidden; color: var(--muted); content: attr(data-phase-label); font-size: .47rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
  .topic-inline-cell i { width: 8px; height: 8px; margin-top: .65rem; }
  .topic-inline-drawer { margin-top: .65rem; }
}

/* Dedicated topic-specific Actor × Procedure explorer. */
.explorer-page .journey-body { padding-top: 0; }
.explorer-hero { width: min(var(--content), calc(100% - 64px)); margin: 0 auto; padding: 1.35rem 0 1.5rem; }
.explorer-hero h1 { margin-bottom: .45rem; font-size: clamp(2.4rem, 4.3vw, 4.25rem); }
.explorer-hero-note { margin: .7rem 0 1rem; color: var(--ink-soft); font-size: .72rem; }
.explorer-block { padding-top: 1.5rem; }
.explorer-intro { max-width: 780px; margin: -.25rem 0 1rem; color: var(--ink-soft); font-size: .7rem; line-height: 1.5; }
.explorer-spine { display: grid; grid-template-columns: repeat(var(--phase-count, 6), minmax(180px, 1fr)); gap: .6rem; min-width: max(100%, calc(var(--phase-count, 6) * 180px)); padding: .35rem 0 .65rem; }
.explorer-phase { position: relative; min-width: 180px; padding-top: .75rem; border-top: 2px solid var(--gold); background: rgba(255,253,249,.4); transition: opacity .18s, box-shadow .18s; }
.explorer-phase::before { position: absolute; top: -.43rem; left: .75rem; width: .62rem; height: .62rem; content: ''; border: 2px solid var(--gold); border-radius: 50%; background: var(--paper); }
.explorer-phase.confirmed { border-top-color: var(--teal); }
.explorer-phase.confirmed::before { border-color: var(--teal); }
.explorer-phase.current { border-top-color: var(--navy); background: rgba(20,44,69,.045); }
.explorer-phase.current::before { border-color: var(--navy); background: var(--navy); box-shadow: 0 0 0 4px rgba(20,44,69,.12); }
.explorer-phase.expected { border-top-style: dashed; border-top-color: #969d99; }
.explorer-phase.expected::before { border-style: dashed; border-color: #969d99; }
.explorer-phase-head { display: grid; width: 100%; min-height: 104px; gap: .32rem; padding: 0 .7rem .65rem; border: 0; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.explorer-phase-head:hover, .explorer-phase-head:focus-visible { background: rgba(255,255,255,.72); outline-offset: -3px; }
.explorer-phase-head span { color: var(--gold); font-size: .51rem; font-weight: 800; letter-spacing: .12em; }
.explorer-phase.confirmed .explorer-phase-head span { color: var(--teal); }
.explorer-phase.current .explorer-phase-head span { color: var(--navy); }
.explorer-phase.expected .explorer-phase-head span { color: var(--muted); }
.explorer-phase-head strong { display: -webkit-box; overflow: hidden; min-height: 2.8em; font-family: var(--serif); font-size: .84rem; font-weight: 400; line-height: 1.32; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.explorer-phase-head small { color: var(--muted); font-size: .57rem; }
.explorer-phase-actors { display: grid; gap: .4rem; padding: .1rem .7rem .7rem; }
.explorer-actor-node { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .35rem .45rem; align-items: center; min-width: 0; padding: .48rem; border: 1px solid var(--line); border-left: 2px solid var(--teal); color: var(--ink); background: var(--white); text-align: left; cursor: pointer; transition: opacity .18s, border-color .18s, box-shadow .18s; }
.explorer-actor-node.expected { border-left-style: dashed; border-left-color: #969d99; }
.explorer-actor-node:hover, .explorer-actor-node:focus-visible { border-color: var(--gold); outline-offset: -2px; }
.explorer-actor-mark { display: inline-grid; width: 25px; height: 25px; place-items: center; overflow: hidden; border: 1px solid rgba(185,134,61,.35); border-radius: 50%; color: var(--navy); background: var(--paper); font-size: .44rem; font-weight: 800; }
.explorer-actor-mark img { width: 100%; height: 100%; object-fit: contain; padding: .16rem; }
.explorer-actor-node strong, .explorer-actor-node small { grid-column: 2; min-width: 0; }
.explorer-actor-node strong { overflow: hidden; font-size: .61rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.explorer-actor-node small { color: var(--muted); font-size: .51rem; line-height: 1.3; }
.explorer-actor-node .explorer-actor-mark { grid-row: 1 / span 2; grid-column: 1; }
.explorer-drawer { position: fixed; z-index: 60; top: 82px; right: 0; bottom: 0; width: min(390px, 34vw); overflow: auto; padding: 2.1rem 1.5rem 2rem; border-left: 1px solid var(--line); color: var(--ink); background: rgba(255,253,249,.98); box-shadow: -18px 0 42px rgba(20,44,69,.12); transform: translateX(100%); transition: transform .2s ease; }
.explorer-drawer.is-open { transform: translateX(0); }
.explorer-drawer .detail-close { position: absolute; top: .8rem; right: 1rem; border: 0; color: var(--muted); background: transparent; font-size: 1.4rem; cursor: pointer; }
.explorer-drawer h3 { max-width: 300px; margin-bottom: 1.2rem; font-size: 1.55rem; }
.explorer-drawer section { padding: .75rem 0; border-top: 1px solid var(--line); }
.drawer-label { margin: 0 0 .35rem; color: var(--gold); font-size: .53rem; font-weight: 800; letter-spacing: .13em; }
.explorer-drawer section > p:not(.drawer-label) { margin: 0; color: var(--ink-soft); font-size: .69rem; line-height: 1.45; }
.explorer-drawer-identity { display: flex; align-items: center; gap: .6rem; margin-bottom: .6rem; }
.explorer-drawer-identity p { margin: 0; color: var(--muted); font-size: .6rem; }
.explorer-drawer-list { display: grid; gap: .45rem; padding: 0; margin: 0; list-style: none; }
.explorer-drawer-list li { display: grid; gap: .15rem; padding: .45rem .5rem; border-left: 2px solid var(--teal); background: rgba(20,141,120,.045); }
.explorer-drawer-list li.is-expected { border-left-style: dashed; border-left-color: #969d99; background: rgba(150,157,153,.07); }
.explorer-drawer-list strong { font-size: .63rem; line-height: 1.3; }
.explorer-drawer-list span { color: var(--muted); font-size: .56rem; line-height: 1.35; }
.explorer-empty-line { margin: 0; color: var(--muted); font-size: .62rem; line-height: 1.4; }
.topic-evidence-link { display: inline-block; margin: .28rem .5rem 0 0; color: var(--gold); font-size: .58rem; font-weight: 800; }
.explorer-drawer > .text-link { display: inline-block; margin-top: .9rem; }
.explorer-back-link { display: inline-block; margin-top: 1rem; }

@media (max-width: 1040px) {
  .topic-hero-grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .topic-decision-brief-grid { grid-template-columns: 1fr; }
  .topic-decision-brief-grid article, .topic-decision-brief-grid article + article { padding: .7rem 0; border-left: 0; }
  .topic-hero-copy h1 { max-width: 760px; }
  .topic-evidence-grid { gap: 1rem; }
  .topic-related { grid-template-columns: 1fr; gap: .8rem; align-items: start; }
  .topic-related .muted-link { justify-self: start; }
  .explorer-drawer { width: min(390px, 44vw); }
}

@media (max-width: 780px) {
  .topic-hero-block, .explorer-hero, .journey-body > .topic-block { width: min(100% - 32px, var(--content)); }
  .topic-hero-block { padding-top: 1.05rem; }
  .topic-hero-block .breadcrumb { margin-bottom: 1.2rem; }
  .topic-hero-copy h1 { font-size: clamp(2.15rem, 10.3vw, 3.1rem); }
  .topic-official-title { margin-top: -.1rem; }
  .topic-official-title strong { font-size: .68rem; }
  .topic-lede { font-size: .82rem; }
  .topic-now-line { align-items: flex-start; flex-direction: column; gap: .28rem; }
  .topic-now-actor { padding-left: 1.15rem; }
  .topic-hero-facts { grid-template-columns: 1fr; }
  .topic-hero-facts article, .topic-hero-facts article:nth-child(even), .topic-hero-facts .topic-fact-why { padding: .7rem 0; border-left: 0; }
  .topic-hero-facts .topic-fact-why { grid-column: auto; }
  .topic-block { padding: 1.3rem 0 1.45rem; }
  .topic-block-heading { align-items: flex-start; flex-direction: column; gap: .45rem; }
  .topic-block-heading h2 { font-size: 1.5rem; }
  .procedure-rail { grid-template-columns: 1fr; min-width: 0; gap: .6rem; }
  .procedure-tracks { display: grid; grid-template-columns: 1fr; }
  .procedure-track b { max-width: none; white-space: normal; }
  .procedure-phase { min-width: 0; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: .2rem; padding: .65rem 0 .45rem; border-top: 0; border-left: 2px solid var(--gold); }
  .procedure-phase.confirmed { border-left-color: var(--teal); }
  .procedure-phase.current { border-left-color: var(--navy); border-top: 0; box-shadow: inset 2px 0 0 var(--navy); }
  .procedure-phase.expected { border-left-style: dashed; border-left-color: #969d99; }
  .procedure-phase.unknown { border-left-style: dashed; border-left-color: #b7b0a5; }
  .procedure-phase.expected.no-actors { display: block; min-height: 0; padding: .38rem 0 .28rem; }
  .procedure-phase.expected.no-actors .procedure-phase-head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .2rem .55rem; align-items: center; padding: .02rem .65rem .08rem; }
  .procedure-phase.expected.no-actors .phase-date, .procedure-phase.expected.no-actors .phase-actors { display: none; }
  .procedure-phase.expected.no-actors .phase-index { grid-row: 1; }
  .procedure-phase.expected.no-actors strong { grid-row: 1; }
  .procedure-phase-head { min-height: 0; padding: .05rem .65rem .35rem; }
  .phase-event { margin: 0 .55rem .35rem 0; }
  .phase-actors { padding: .05rem .55rem .35rem 0; }
  .topic-actor-preview-grid, .topic-watch-list, .topic-evidence-grid { grid-template-columns: 1fr; }
  .topic-actor-preview-row { grid-template-columns: auto minmax(0, 1fr); }
  .topic-actor-phases { grid-column: 2; text-align: left; }
  .topic-document-row, .topic-media-row { grid-template-columns: 1fr; gap: .18rem; align-items: start; }
  .topic-document-row small, .topic-media-row small { text-align: left; white-space: normal; }
  .topic-related-list { grid-template-columns: 1fr; }
  .explorer-hero { padding-top: 1.05rem; }
  .explorer-hero h1 { font-size: clamp(2.15rem, 10vw, 3.1rem); }
  .explorer-spine { grid-template-columns: 1fr; min-width: 0; gap: .75rem; }
  .explorer-phase { min-width: 0; padding-top: .65rem; border-top: 0; border-left: 2px solid var(--gold); }
  .explorer-phase.confirmed { border-left-color: var(--teal); }
  .explorer-phase.current { border-left-color: var(--navy); }
  .explorer-phase.expected { border-left-style: dashed; border-left-color: #969d99; }
  .explorer-phase::before { top: .8rem; left: -.42rem; }
  .explorer-phase-head { min-height: 0; padding: .05rem .75rem .6rem; }
  .explorer-phase-actors { padding: 0 .75rem .75rem; }
  .explorer-drawer { top: auto; right: 0; bottom: 0; width: 100%; max-height: 82vh; padding: 1.7rem 1rem 1.25rem; border-top: 1px solid var(--line); border-left: 0; border-radius: 16px 16px 0 0; transform: translateY(100%); }
  .explorer-drawer.is-open { transform: translateY(0); }
}

/* V2.7: institutional power map. Rings carry the hierarchy; nodes carry
   identity and activity. The old category-count strip is intentionally not
   rendered by the public map. */
.map-rings {
  inset: 3% 2%;
  background:
    radial-gradient(circle at center, transparent 0 18%, rgba(12,39,64,.42) 18.15% 18.35%, transparent 18.55% 35%, rgba(185,134,61,.28) 35.15% 35.34%, transparent 35.54% 52%, rgba(185,134,61,.22) 52.15% 52.34%, transparent 52.54% 70%, rgba(20,141,120,.18) 70.15% 70.34%, transparent 70.54% 100%),
    linear-gradient(90deg, transparent 49.92%, rgba(185,134,61,.08) 50%, transparent 50.08%),
    linear-gradient(0deg, transparent 49.92%, rgba(185,134,61,.08) 50%, transparent 50.08%);
  mask-image: radial-gradient(ellipse at center, #000 0 80%, transparent 96%);
}
.ring-label { position: absolute; color: rgba(20,44,69,.52); font-size: .48rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.ring-decision { top: 30%; left: 50%; transform: translateX(-50%); color: rgba(12,39,64,.72); }
.ring-legislation { top: 21%; left: 50%; transform: translateX(-50%); }
.ring-implementation { top: 12%; left: 50%; transform: translateX(-50%); }
.ring-participation { top: 3%; left: 50%; transform: translateX(-50%); color: rgba(20,141,120,.62); }
.relation-line { transition: opacity .18s, stroke-width .18s; }
.relation-line.relation-decision { stroke: rgba(12,39,64,.86); stroke-width: 2.5; }
.relation-line.relation-direction { stroke: rgba(185,134,61,.88); stroke-width: 2.1; }
.relation-line.relation-legislation { stroke: rgba(77,127,171,.82); stroke-width: 1.8; }
.relation-line.relation-regulation { stroke: rgba(77,137,194,.78); stroke-width: 1.55; stroke-dasharray: 2 4; }
.relation-line.relation-implementation { stroke: rgba(20,141,120,.72); stroke-width: 1.35; }
.relation-line.relation-participation { stroke: rgba(118,126,128,.62); stroke-width: 1.15; stroke-dasharray: 5 6; }
.relation-line.is-highlight { opacity: 1; stroke-width: 3; }
.stakeholder-map:has(.stakeholder-node:hover) .relation-line:not(.is-highlight) { opacity: .16; }
.stakeholder-node.is-dimmed { opacity: .24; }
.stakeholder-node.is-highlight { opacity: 1; border-color: var(--gold); box-shadow: 0 0 0 4px rgba(185,134,61,.16), 0 11px 24px rgba(20,44,69,.14); }
.institution-identity { display: grid; width: 25px; height: 25px; min-width: 25px; place-items: center; margin-bottom: .32rem; overflow: hidden; border: 1px solid rgba(185,134,61,.56); border-radius: 50%; color: var(--navy); background: rgba(247,244,238,.94); font-size: .43rem; font-weight: 900; letter-spacing: -.02em; line-height: 1; }
.actor-node-identity { display: grid; width: 18px; height: 18px; place-items: center; margin-bottom: .2rem; border: 1px solid rgba(185,134,61,.45); border-radius: 50%; color: var(--navy); background: var(--paper); font-size: .38rem; font-weight: 900; }
.identity-territory { color: var(--teal); border-color: rgba(20,141,120,.5); }
.identity-parliament { color: #4d7fab; border-color: rgba(77,127,171,.5); }
.identity-eu, .identity-eu-commission, .identity-eu-agency, .identity-eu-parliament, .identity-eu-council { color: #315d9c; border-color: rgba(49,93,156,.42); }
.identity-logo { object-fit: contain; padding: .22rem; }
.stakeholder-node .node-activity { color: var(--gold); }
.stakeholder-node .node-lineage { max-width: 104px; overflow: hidden; color: var(--teal); font-size: .42rem; letter-spacing: 0; text-overflow: ellipsis; text-transform: none; white-space: nowrap; }
.map-hover-detail { position: absolute; z-index: 8; top: .85rem; right: .85rem; display: grid; max-width: 230px; gap: .2rem; padding: .58rem .68rem; border-left: 2px solid var(--gold); background: rgba(255,253,249,.93); box-shadow: 0 8px 18px rgba(20,44,69,.08); font-size: .58rem; line-height: 1.35; }
.map-hover-detail strong { color: var(--ink); font-size: .64rem; }
.map-hover-detail span { color: var(--gold); }
.map-hover-detail small { color: var(--muted); font-size: .53rem; }
.cluster-preview[hidden] { display: none !important; }
.map-hover-detail[hidden] { display: none !important; }
.agenda-note { display: none; }

@media (max-width: 780px) {
  .ring-label { font-size: .4rem; letter-spacing: .08em; }
  .ring-decision { top: 30%; }
  .ring-legislation { top: 21%; }
  .ring-implementation { top: 12%; }
  .ring-participation { top: 3%; }
  .map-hover-detail { top: .55rem; right: .55rem; max-width: 180px; }
  .institution-identity { width: 21px; height: 21px; min-width: 21px; font-size: .38rem; }
}

/* V2.6: power-map geometry, real CCAA clustering, and shared topic interaction. */
.map-legend .legend-dot.distance { border: 1px solid var(--navy); background: var(--navy); }
.map-legend .legend-dot.activity { border: 2px solid var(--gold); background: transparent; box-shadow: 0 0 0 3px rgba(184,137,59,.14); }
.map-legend .legend-line { display: inline-block; width: 20px; height: 0; border-top: 2px solid var(--gold); }
.map-legend .legend-line.dashed { border-top-style: dashed; border-top-color: #8e9693; }
.legend-power-labels { display: flex; flex-wrap: wrap; gap: .3rem .45rem; margin-top: .7rem; color: var(--ink); font-size: .54rem; }
.legend-power-labels b { padding: .2rem .3rem; border: 1px solid rgba(184,137,59,.26); font-weight: 800; }
.map-lines .relation-line.solid { stroke-dasharray: none; }
.map-lines .relation-line.dashed { stroke-dasharray: 8 7; opacity: .65; }
.stakeholder-node { left: var(--node-x); top: var(--node-y); transform: translate(-50%, -50%); transition: border-color .2s, box-shadow .2s, transform .2s, opacity .2s; }
.stakeholder-node:hover, .stakeholder-node:focus-visible, .stakeholder-node[aria-expanded="true"] { transform: translate(-50%, -50%) scale(1.045); }
.stakeholder-node.cluster-node { border-width: 2px; border-color: var(--teal); background: rgba(225,241,235,.95); }
.stakeholder-node.cluster-node .node-mark { background: var(--teal); }
.cluster-preview { position: absolute; z-index: 12; top: 1.1rem; right: 1rem; display: grid; max-width: 260px; gap: .22rem; padding: .55rem .65rem; border: 1px solid var(--gold-soft); background: rgba(255,253,249,.98); box-shadow: 0 10px 24px rgba(20,44,69,.12); font-size: .58rem; line-height: 1.35; }
.cluster-preview b { color: var(--ink); font-size: .61rem; }
.cluster-preview span { color: var(--muted); }
.stakeholder-detail-role strong, .stakeholder-detail-evidence strong { color: var(--gold); font-size: .58rem; letter-spacing: .11em; text-transform: uppercase; }
.stakeholder-detail-role br + *, .stakeholder-detail-evidence br + * { color: var(--ink-soft); }
.detail-section-label { margin: .8rem 0 .4rem; color: var(--gold); font-size: .58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.detail-cluster-items { display: grid; gap: .35rem; max-height: 220px; overflow: auto; }
.detail-cluster-item { display: grid; gap: .1rem; padding: .45rem .5rem; border: 1px solid var(--line); color: var(--ink); background: var(--white); text-align: left; cursor: pointer; }
.detail-cluster-item:hover, .detail-cluster-item:focus-visible { border-color: var(--gold); }
.detail-cluster-item strong { font-size: .62rem; }
.detail-cluster-item span { color: var(--muted); font-size: .55rem; }

.actor-node { left: var(--actor-x); top: var(--actor-y); transform: translate(-50%, -50%); cursor: pointer; transition: border-color .18s, box-shadow .18s, opacity .18s, transform .18s; }
.actor-node:nth-of-type(1), .actor-node:nth-of-type(2), .actor-node:nth-of-type(3), .actor-node:nth-of-type(4), .actor-node:nth-of-type(5), .actor-node:nth-of-type(6) { right: auto; bottom: auto; }
.actor-node:hover, .actor-node:focus-visible, .actor-node.is-highlight { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(184,137,59,.2), 0 9px 20px rgba(20,44,69,.12); transform: translate(-50%, -50%) scale(1.04); }
.actor-node.is-dimmed { opacity: .24; }
.actor-map .is-dimmed { opacity: .24; }
.timeline-panel [data-phase-id] { cursor: pointer; transition: opacity .18s, box-shadow .18s, border-color .18s; }
.timeline-panel [data-phase-id].is-highlight { box-shadow: 0 0 0 2px rgba(184,137,59,.48), 0 8px 18px rgba(20,44,69,.08); }
.timeline-panel [data-phase-id].is-dimmed { opacity: .25; }
.topic-actor-drawer { position: absolute; z-index: 10; right: .8rem; bottom: .8rem; width: min(300px, calc(100% - 1.6rem)); max-height: 78%; overflow: auto; padding: 1rem 1.2rem 1rem 1rem; border: 1px solid var(--gold-soft); background: rgba(255,253,249,.98); box-shadow: 0 15px 32px rgba(20,44,69,.15); opacity: 0; transform: translateY(10px); transition: opacity .18s, transform .18s; }
.topic-actor-drawer.is-open { opacity: 1; transform: translateY(0); }
.topic-actor-drawer h3 { margin-bottom: .6rem; font-size: 1rem; }
.topic-actor-drawer .detail-close { top: .35rem; right: .45rem; }
.drawer-label { margin: .65rem 0 .2rem; color: var(--gold); font-size: .58rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.topic-relation-list { display: grid; gap: .38rem; padding: 0; margin: .25rem 0 0; list-style: none; }
.topic-relation-row { display: grid; gap: .1rem; padding: .42rem .5rem; border-left: 3px solid var(--teal); background: rgba(225,241,235,.35); }
.topic-relation-row.expected { border-left-style: dashed; border-left-color: #919995; background: rgba(236,235,231,.55); }
.topic-relation-row strong { font-size: .62rem; line-height: 1.25; }
.topic-relation-row span, .topic-relation-empty { color: var(--muted); font-size: .57rem; line-height: 1.35; }
.topic-relation-empty { padding: .35rem 0; }
.topic-evidence-link { color: var(--gold); font-size: .56rem; font-weight: 800; }

@media (max-width: 780px) {
  .stakeholder-node { transform: translate(-50%, -50%); }
  .stakeholder-node:hover, .stakeholder-node:focus-visible, .stakeholder-node[aria-expanded="true"] { transform: translate(-50%, -50%) scale(1.035); }
  .cluster-preview { top: .6rem; right: .6rem; left: .6rem; max-width: none; }
  .topic-actor-drawer { position: fixed; right: 0; bottom: 0; left: 0; width: 100%; max-height: 72vh; border-right: 0; border-bottom: 0; border-radius: 14px 14px 0 0; transform: translateY(18px); }
  .topic-actor-drawer.is-open { transform: translateY(0); }
}

/* V2.4 graph contract: structural clusters remain visible while activity is
   expressed as a separate state, never by replacing the catalogue node. */
.map-clusters { position: absolute; z-index: 1; top: 1rem; left: 1rem; display: flex; max-width: 54%; flex-wrap: wrap; gap: .35rem; }
.map-clusters span { display: grid; gap: .12rem; padding: .34rem .48rem; border: 1px solid rgba(184,137,59,.22); border-radius: 999px; background: rgba(255,255,255,.72); color: var(--ink-soft); font-size: .5rem; }
.map-clusters b { color: var(--ink); font-size: .52rem; }
.map-clusters small { font-size: .47rem; }
.stakeholder-node.is-active { border-color: var(--gold); box-shadow: 0 0 0 5px rgba(184,137,59,.12), 0 8px 22px rgba(17,31,66,.12); }
.stakeholder-node.is-active .node-mark { box-shadow: 0 0 0 4px rgba(184,137,59,.18); }
.stakeholder-node.layer-executive { border-width: 2px; }
.stakeholder-node.layer-legislative { border-style: dashed; }
.stakeholder-node.layer-regulators_technical { box-shadow: 0 0 0 4px rgba(77,137,194,.08), 0 5px 16px rgba(17,31,66,.07); }
.stakeholder-node.layer-implementation_coordination { border-color: rgba(42,171,148,.55); }
.stakeholder-node.layer-ecosystem { border-color: rgba(184,137,59,.42); }
.legend-dot.executive { color: var(--navy); background: var(--navy); }
.legend-dot.legislative { color: var(--gold); background: transparent; }
.legend-dot.regulators_technical { color: #4d89c2; background: transparent; }
.legend-dot.implementation_coordination { color: var(--teal); background: transparent; }
.legend-dot.ecosystem { color: #b8893b; background: transparent; }
.timeline-subheading { margin: 1.1rem 0 .55rem; color: var(--muted); font-size: .61rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.timeline-track.roadmap-track { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.timeline-disclaimer, .timeline-empty { margin-top: .9rem; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.timeline-more, .coverage-more, .dossier-related { margin-top: .85rem; border-top: 1px solid rgba(20,44,69,.12); padding-top: .7rem; }
.timeline-more summary, .coverage-more summary, .dossier-related summary { cursor: pointer; color: var(--navy); font-size: .68rem; font-weight: 800; letter-spacing: .03em; }
.timeline-more[open] summary, .coverage-more[open] summary, .dossier-related[open] summary { margin-bottom: .7rem; }
.timeline-more .timeline-track { margin-top: .2rem; }
.coverage-more .signals-grid { margin-top: .7rem; }
.dossier-journeys-list { display: grid; gap: .55rem; margin-top: .7rem; }
.institution-material-events li strong { font-weight: 700; }
.institution-material-events .event-source { color: var(--gold); font-weight: 800; }

@media (max-width: 780px) {
  .map-clusters { position: static; max-width: 100%; margin: .7rem 1rem 0; }
  .timeline-track.roadmap-track { display: block; }
}

@media (max-width: 390px) {
  .area-grid, .home-areas .area-grid { grid-template-columns: 1fr; }
  .actor-node { max-width: 106px; }
  .network-center { width: 112px; min-height: 112px; }
}

/* V3.8: actor-to-actor relations use one restrained system; semantics are
   carried by stroke pattern and the accessible drawer, not a rainbow graph. */
.relation-institution-line { stroke: rgba(12,39,64,.34); stroke-width: 1.25; }
.relation-institution-line.solid { stroke: rgba(12,39,64,.48); }
.relation-institution-line.dashed { stroke: rgba(185,134,61,.5); stroke-dasharray: 7 6; }
.relation-institution-line.is-highlight { stroke: var(--gold); stroke-width: 2.5; opacity: 1; }
.legend-toggle { display: inline-flex; align-items: center; gap: .35rem; padding: 0; border: 0; color: var(--ink); background: transparent; font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.legend-toggle span { margin: 0; color: var(--gold); font-size: .82rem; }
.legend-content[hidden] { display: none; }
.legend-content { margin-top: .55rem; }
.institution-identity { width: 30px; height: 30px; min-width: 30px; font-size: .44rem; }

/* Atlas product surface: shared Normativo navigation and area map */
:root {
  --navy: #1a2e5e;
  --navy-deep: #111f42;
  --navy-mid: #243570;
  --ink: #1a2e5e;
  --ink-soft: #4a5578;
  --muted: #8a91aa;
  --paper: #f9f8f6;
  --paper-deep: #f0ede7;
  --white: #fff;
  --line: #e5e2db;
  --gold: #b8893b;
  --gold-soft: #f0e4cf;
  --teal: #2aab94;
}

body { color: var(--ink); background: var(--paper); }
.site-header { position: sticky; top: 0; border-bottom-color: var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.header-inner { width: min(1280px, calc(100% - 104px)); min-height: 66px; }
.brand { min-width: 0; gap: .8rem; }
.brand img { width: 154px; }
.brand-divider { width: 1px; height: 30px; background: var(--gold); opacity: .7; }
.brand-subtitle { display: inline; color: var(--muted); font-size: .77rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
.primary-nav { height: 66px; gap: 2.9rem; color: var(--ink); font-size: .82rem; font-weight: 600; }
.primary-nav > a { height: 66px; }
.primary-nav a:hover, .primary-nav a.is-active { color: var(--navy); }
.primary-nav a.is-active::after { background: var(--gold); }
.areas-menu { position: relative; height: 66px; }
.areas-menu summary { display: inline-flex; height: 66px; align-items: center; gap: .65rem; color: var(--ink); cursor: pointer; list-style: none; }
.areas-menu summary::-webkit-details-marker { display: none; }
.areas-menu summary span { color: var(--muted); font-size: 1rem; line-height: 1; transform: translateY(-1px); }
.areas-menu[open] summary { color: var(--gold); }
.area-menu-list { position: absolute; top: calc(100% + 1px); right: 0; display: block; width: 250px; padding: .7rem; border: 1px solid var(--line); background: var(--white); box-shadow: 0 16px 36px rgba(17,31,66,.13); }
.area-menu-links { min-width: 0; display: grid; align-content: start; gap: .05rem; padding: .15rem .35rem .25rem; }
.area-menu-list a { display: block; height: auto; padding: .62rem .72rem; color: var(--ink); font-size: .72rem; font-weight: 600; }
.area-menu-list a:hover { color: var(--gold); background: var(--paper); }
.static-product-content section { margin-top: 1.35rem; max-width: 760px; }
.static-product-content h2 { margin: .35rem 0 .7rem; font-size: 1.15rem; }
.static-product-content > p:not(.eyebrow) { max-width: 680px; color: var(--ink-soft); line-height: 1.65; }
.static-link-list { display: grid; gap: .45rem; padding: 0; margin: .65rem 0 0; list-style: none; }
.static-link-list li, .static-link-list a { display: grid; gap: .18rem; }
.static-link-list a { padding: .58rem .68rem; border: 1px solid var(--line); color: var(--ink); background: rgba(255,255,255,.55); }
.static-link-list a:hover { border-color: var(--gold); }
.static-link-list span { color: var(--muted); font-size: .68rem; }
.menu-toggle { color: var(--ink); }

/* Home keeps the institutional composition, with navigation areas below the copy. */
.home-hero { min-height: calc(100svh - 66px); background-image: linear-gradient(90deg, rgba(249,248,246,1) 0%, rgba(249,248,246,.98) 38%, rgba(249,248,246,.64) 66%, rgba(249,248,246,.08) 100%), url('/atlas/assets/atlas-institutional-hero.webp'); }
.home-hero::after { background: linear-gradient(180deg, rgba(249,248,246,.05), rgba(249,248,246,.04) 65%, rgba(249,248,246,.64)); }
.home-inner { display: block; width: min(1280px, calc(100% - 104px)); min-height: calc(100svh - 66px); padding: 6.2rem 0 4.2rem; }
.home-copy { max-width: 860px; }
.home-copy h1 { max-width: 820px; font-size: clamp(3rem, 5.4vw, 5rem); }
.home-copy .lede { max-width: 580px; }
.home-areas { max-width: 820px; margin-top: 3.5rem; padding: 0; }
.home-areas .eyebrow { margin-bottom: .9rem; }
.home-areas .area-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .65rem; }
.area-tile { min-height: 112px; padding: 1rem .8rem .8rem; border-color: rgba(184,137,59,.32); background: rgba(255,255,255,.66); }
.area-tile h2 { font-size: .72rem; line-height: 1.35; }
.area-tile .arrow-link { font-size: .66rem; }

/* Area: the graph owns the first screen; topics begin after it. */
.area-hero { min-height: calc(100svh - 100px); padding: 2.15rem 0 2rem; background-image: radial-gradient(circle at 76% 44%, rgba(184,137,59,.08) 0 1px, transparent 1.5px), repeating-radial-gradient(ellipse at 76% 44%, transparent 0 105px, rgba(184,137,59,.06) 106px 107px, transparent 108px 210px); background-position: center; background-size: auto, auto; }
.area-hero::after { background: linear-gradient(180deg, rgba(249,248,246,.08), rgba(249,248,246,.24)); }
.area-hero-inner { display: grid; grid-template-columns: minmax(230px, 280px) minmax(0, 1fr); align-items: stretch; gap: 2.5rem; width: min(1280px, calc(100% - 104px)); min-height: calc(100svh - 166px); }
.area-copy { position: relative; z-index: 2; padding-top: .5rem; }
.area-hero .breadcrumb { margin-bottom: 2.1rem; }
.area-hero h1 { margin-bottom: .35rem; font-size: clamp(2.7rem, 4.2vw, 4.1rem); }
.area-hero .gold-rule { margin: .95rem 0 1.15rem; }
.area-description { max-width: 270px; margin-bottom: 1.7rem; color: var(--ink-soft); font-size: .83rem; line-height: 1.65; }
.map-legend { padding: 1rem 1rem .85rem; border: 1px solid rgba(184,137,59,.25); background: rgba(255,255,255,.48); }
.legend-title { margin-bottom: .8rem; color: var(--ink); font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.map-legend span { display: flex; align-items: center; gap: .48rem; margin-top: .47rem; color: var(--ink-soft); font-size: .65rem; }
.legend-dot { display: inline-block; width: .85rem; height: .85rem; border: 1px solid currentColor; border-radius: 50%; }
.legend-dot.competence { color: var(--navy); background: var(--navy); }
.legend-dot.influence { color: var(--gold); background: transparent; }
.legend-dot.execution { color: var(--teal); background: transparent; }
.legend-dot.monitoring { color: #6b9fd3; background: transparent; }
.stakeholder-map-stage { position: relative; min-width: 0; min-height: 650px; }
.map-loading, .map-empty { display: grid; height: 100%; min-height: 540px; place-items: center; color: var(--muted); font-size: .72rem; text-align: center; }
.stakeholder-map { position: relative; min-height: 650px; overflow: visible; }
.map-rings { position: absolute; inset: 4% 3%; border-radius: 50%; background: repeating-radial-gradient(circle at 50% 50%, transparent 0 72px, rgba(184,137,59,.11) 73px 74px, transparent 75px 132px), linear-gradient(90deg, transparent 49.9%, rgba(184,137,59,.08) 50%, transparent 50.1%), linear-gradient(0deg, transparent 49.9%, rgba(184,137,59,.08) 50%, transparent 50.1%); mask-image: radial-gradient(ellipse at center, #000 0 63%, transparent 92%); }
.map-lines { position: absolute; inset: 4% 3%; width: 94%; height: 92%; overflow: visible; }
.relation-line { fill: none; stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.relation-line.competence { stroke: rgba(26,46,94,.48); }
.relation-line.influence { stroke: rgba(184,137,59,.68); stroke-dasharray: 6 5; }
.relation-line.execution { stroke: rgba(42,171,148,.68); }
.relation-line.monitoring { stroke: rgba(77,137,194,.68); stroke-dasharray: 2 5; }
.relation-line.relation { stroke: rgba(74,85,120,.35); stroke-dasharray: 3 5; }
.map-center { position: absolute; z-index: 2; top: 50%; left: 50%; display: flex; width: 166px; min-height: 166px; align-items: center; justify-content: center; flex-direction: column; padding: 1rem; border: 7px solid rgba(26,46,94,.1); border-radius: 50%; color: var(--white); background: var(--navy-deep); box-shadow: 0 12px 28px rgba(17,31,66,.15); text-align: center; transform: translate(-50%, -50%); }
.map-center span { margin-bottom: .35rem; color: rgba(255,255,255,.66); font-size: .55rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.map-center strong { font-family: var(--serif); font-size: 1.45rem; font-weight: 400; }
.stakeholder-node { position: absolute; z-index: 3; top: var(--node-y); left: var(--node-x); display: flex; width: 122px; min-height: 82px; align-items: center; justify-content: center; flex-direction: column; padding: .72rem .6rem; border: 1px solid rgba(26,46,94,.2); border-radius: 50%; color: var(--ink); background: rgba(255,255,255,.9); box-shadow: 0 5px 16px rgba(17,31,66,.07); text-align: center; transform: translate(-50%, -50%); transition: border-color .2s, box-shadow .2s, transform .2s; }
.stakeholder-node:hover, .stakeholder-node:focus-visible, .stakeholder-node[aria-expanded="true"] { border-color: var(--gold); box-shadow: 0 10px 22px rgba(17,31,66,.14); transform: translate(-50%, -50%) scale(1.04); }
.stakeholder-node strong { display: -webkit-box; overflow: hidden; max-width: 102px; font-size: .61rem; font-weight: 800; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.stakeholder-node small { margin-top: .3rem; color: var(--ink-soft); font-size: .49rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.stakeholder-node.competence { border-color: rgba(26,46,94,.3); }
.node-mark { width: 7px; height: 7px; margin-bottom: .35rem; border-radius: 50%; background: var(--navy); }
.node-mark.influence { border: 1px solid var(--gold); background: transparent; }
.node-mark.execution { background: var(--teal); }
.node-mark.monitoring { background: #4d89c2; }
.node-mark.relation { background: var(--ink-soft); }
.stakeholder-detail { position: absolute; z-index: 10; top: 2.5rem; right: 0; width: min(310px, 35%); padding: 1.55rem 1.35rem 1.4rem; border: 1px solid rgba(26,46,94,.08); background: rgba(255,255,255,.98); box-shadow: 0 18px 38px rgba(17,31,66,.16); opacity: 0; transform: translateX(18px); transition: opacity .22s ease, transform .22s ease; }
.stakeholder-detail.is-open { opacity: 1; transform: translateX(0); }
.detail-close { position: absolute; top: .65rem; right: .75rem; border: 0; color: var(--muted); background: transparent; font-size: 1.45rem; line-height: 1; cursor: pointer; }
.detail-kicker { display: block; margin-bottom: .65rem; color: var(--gold); font-size: .6rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.stakeholder-detail h2 { max-width: 230px; margin-bottom: .7rem; font-size: 1.45rem; line-height: 1.15; }
.detail-role, .detail-evidence { margin-bottom: .85rem; color: var(--ink-soft); font-size: .72rem; line-height: 1.55; }
.detail-divider { height: 1px; margin: 1rem 0; background: var(--line); }
.detail-link { display: inline-flex; align-items: center; gap: .75rem; color: var(--gold); font-size: .74rem; font-weight: 800; }
.area-content { width: min(1280px, calc(100% - 104px)); padding: 2rem 0 4.5rem; }
.area-topics .topic-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Footer follows the real Normativo information architecture. */
.site-footer { background: var(--navy-deep); }
.footer-inner { display: grid; grid-template-columns: minmax(260px, 1.5fr) minmax(170px, .7fr) minmax(180px, .8fr); align-items: start; gap: 3.5rem; width: min(1280px, calc(100% - 104px)); min-height: 166px; padding: 2.1rem 0 1.55rem; }
.footer-intro p { max-width: 310px; margin: .85rem 0 0; color: rgba(255,255,255,.62); font-size: .67rem; line-height: 1.55; }
.footer-brand { width: 145px; }
.footer-brand img { width: 145px; }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; }
.footer-label { margin: 0 0 .3rem; color: rgba(255,255,255,.47); font-size: .58rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.footer-links { display: flex; flex-direction: column; gap: .55rem; font-size: .68rem; }
.footer-contact a { color: rgba(255,255,255,.75); font-size: .68rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; width: min(1280px, calc(100% - 104px)); padding: .85rem 0 1rem; border-top: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.43); font-size: .59rem; }

@media (max-width: 1040px) {
  .header-inner, .home-inner, .area-hero-inner, .area-content, .footer-inner, .footer-bottom { width: min(100% - 64px, 1280px); }
  .home-areas .area-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .area-hero-inner { grid-template-columns: 230px minmax(0, 1fr); gap: 1rem; }
  .stakeholder-detail { width: 38%; }
}

@media (max-width: 780px) {
  .header-inner, .home-inner, .area-hero-inner, .area-content, .footer-inner, .footer-bottom { width: calc(100% - 32px); }
  .header-inner { min-height: 68px; }
  .brand img { width: 142px; }
  .brand-divider, .brand-subtitle { display: none; }
  .primary-nav { top: 68px; right: 16px; left: 16px; height: auto; }
  .primary-nav > a, .areas-menu { height: auto; }
  .primary-nav > a { padding: .75rem; }
  .areas-menu summary { width: 100%; height: auto; justify-content: space-between; padding: .75rem; }
  .area-menu-list { position: static; display: block; width: auto; margin: 0 .35rem .35rem; box-shadow: none; }
  .area-menu-links { padding: .15rem 0 .25rem; }
  .home-hero { min-height: 0; background-image: linear-gradient(180deg, rgba(249,248,246,.96) 0%, rgba(249,248,246,.88) 52%, rgba(249,248,246,.46) 100%), url('/atlas/assets/atlas-institutional-hero.webp'); background-position: center, 70% center; }
  .home-inner { min-height: 0; padding: 3.5rem 0 2.7rem; }
  .home-copy h1 { font-size: clamp(2.35rem, 11vw, 3.6rem); }
  .home-areas { margin-top: 2.5rem; }
  .home-areas .area-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .area-hero { min-height: 0; padding: 1.5rem 0 0; background-image: radial-gradient(circle at 80% 48%, rgba(184,137,59,.08) 0 1px, transparent 1.5px), repeating-radial-gradient(ellipse at 80% 48%, transparent 0 80px, rgba(184,137,59,.05) 81px 82px, transparent 83px 160px); }
  .area-hero-inner { display: block; min-height: 0; }
  .area-copy { padding-top: 0; }
  .area-hero .breadcrumb { margin-bottom: 1.45rem; }
  .area-hero h1 { font-size: clamp(2.5rem, 13vw, 3.6rem); }
  .area-description { max-width: 330px; margin-bottom: 1rem; }
  .map-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .12rem .6rem; max-width: 330px; padding: .8rem .85rem; }
  .legend-title { grid-column: 1 / -1; margin-bottom: .25rem; }
  .stakeholder-map-stage { min-height: 920px; margin: .8rem -1rem 0; }
  .stakeholder-map { min-height: 920px; }
  .map-rings { inset: 4% 0; }
  .map-lines { inset: 4% 0; width: 100%; }
  .map-center { width: 126px; min-height: 126px; border-width: 5px; }
  .map-center strong { font-size: 1.2rem; }
  .stakeholder-node { width: 99px; min-height: 70px; padding: .55rem .4rem; }
  .stakeholder-node strong { max-width: 84px; font-size: .54rem; }
  .stakeholder-node small { font-size: .43rem; }
  .stakeholder-detail { position: fixed; right: 0; bottom: 0; top: auto; width: 100%; max-height: 72vh; padding: 1.35rem 1.2rem 1.5rem; transform: translateY(18px); }
  .stakeholder-detail.is-open { transform: translateY(0); }
  .area-content { padding: 1.8rem 0 3.4rem; }
  .area-topics .topic-card-grid { grid-template-columns: 1fr; }
  .footer-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem 1rem; min-height: 0; padding: 1.8rem 0 1.4rem; }
  .footer-intro { grid-column: 1 / -1; }
  .footer-bottom { align-items: flex-start; flex-direction: column; padding: .8rem 0 1rem; }
}

@media (max-width: 390px) {
  .home-areas .area-grid { grid-template-columns: 1fr 1fr; }
  .stakeholder-node { width: 88px; min-height: 64px; }
  .stakeholder-node strong { max-width: 76px; font-size: .5rem; }
}

/* Editorial LIVE pass: the institutional image is a Home-only brand asset. */
.area-hero { background-image: radial-gradient(circle at 76% 44%, rgba(184,137,59,.08) 0 1px, transparent 1.5px), repeating-radial-gradient(ellipse at 76% 44%, transparent 0 105px, rgba(184,137,59,.06) 106px 107px, transparent 108px 210px); }

/* Lobby V1: a scoped editorial surface for one deeply documented dossier. */
.home-areas .area-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.lobby-page { color: var(--ink); background: var(--paper); }
.lobby-dossier-page { min-height: 100%; }
.lobby-area-hero { color: var(--white); background: linear-gradient(115deg, var(--navy-deep, #0c2740) 0%, #173b5a 62%, #215066 100%); }
.lobby-area-hero-inner, .lobby-area-content, .lobby-dossier-hero-inner, .lobby-dossier-body { width: min(var(--content), calc(100% - 64px)); margin: 0 auto; }
.lobby-area-hero-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); gap: 3rem; padding: 2rem 0 2.5rem; }
.lobby-area-hero .breadcrumb { grid-column: 1 / -1; margin-bottom: 0; color: rgba(255,255,255,.64); }
.lobby-area-hero .breadcrumb span::before { color: var(--gold-soft); }
.lobby-area-copy { max-width: 700px; }
.lobby-area-copy .eyebrow, .lobby-area-copy .gold-rule { color: var(--gold-soft); }
.lobby-area-copy h1 { margin-bottom: .4rem; font-size: clamp(3rem, 6vw, 5.6rem); }
.lobby-area-subtitle { margin-bottom: .7rem; color: rgba(255,255,255,.86); font-family: var(--serif); font-size: 1.1rem; }
.lobby-area-description { max-width: 610px; margin: 0; color: rgba(255,255,255,.7); font-size: .86rem; line-height: 1.65; }
.lobby-area-status { display: flex; align-self: end; flex-direction: column; gap: .85rem; padding: 1.1rem 1.2rem; border-left: 2px solid var(--gold); color: rgba(255,255,255,.76); font-size: .68rem; line-height: 1.45; }
.lobby-status-pill, .lobby-neutral-pill, .lobby-caution-pill { display: inline-flex; width: fit-content; align-items: center; padding: .35rem .52rem; font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.lobby-status-pill { color: var(--navy); background: var(--teal-soft); }
.lobby-neutral-pill { color: var(--ink-soft); background: rgba(255,255,255,.7); }
.lobby-caution-pill { color: #7c5b25; background: var(--gold-soft); }
.lobby-area-content { padding: 2.4rem 0 4.7rem; }
.lobby-area-intro { display: flex; align-items: end; justify-content: space-between; gap: 2rem; max-width: 900px; padding-bottom: 1.25rem; border-bottom: 1px solid var(--line); }
.lobby-area-intro h2 { margin-bottom: .45rem; font-size: clamp(1.8rem, 3.5vw, 3rem); }
.lobby-area-intro p:not(.eyebrow) { max-width: 680px; margin: 0; color: var(--ink-soft); font-size: .82rem; line-height: 1.6; }
.lobby-area-dossier-card { margin-top: 1.2rem; }
.lobby-dossier-card-link { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .7fr); gap: 1.6rem; padding: 1.55rem 1.6rem 1.35rem; border: 1px solid rgba(185,134,61,.58); background: var(--white); transition: border-color .2s, box-shadow .2s, transform .2s; }
.lobby-dossier-card-link:hover { border-color: var(--gold); box-shadow: 0 14px 30px rgba(20,44,69,.08); transform: translateY(-2px); }
.lobby-dossier-card-main h3 { margin: .55rem 0 .6rem; font-size: 1.55rem; }
.lobby-dossier-card-main p { max-width: 700px; margin-bottom: 1.2rem; color: var(--ink-soft); font-size: .78rem; line-height: 1.55; }
.lobby-card-kicker { color: var(--gold); font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.lobby-dossier-card-facts { display: grid; gap: .55rem; }
.lobby-dossier-card-facts > div { display: grid; grid-template-columns: minmax(105px, .65fr) 1fr; gap: .7rem; padding: .65rem 0; border-top: 1px solid var(--line); }
.lobby-dossier-card-facts > div:first-child { border-top: 0; }
.lobby-dossier-card-facts span, .lobby-dossier-card-facts small { color: var(--gold); font-size: .56rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.lobby-dossier-card-facts strong { font-size: .7rem; line-height: 1.35; }
.lobby-dossier-card-facts small { grid-column: 2; margin-top: -.5rem; color: var(--muted); font-size: .57rem; letter-spacing: 0; text-transform: none; }
.lobby-area-source-note { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: .65rem; color: var(--muted); font-size: .63rem; }
.lobby-source-link { display: inline-flex; color: var(--gold); font-size: .63rem; font-weight: 800; }
.lobby-source-link:hover, .lobby-evidence:hover, .lobby-source-row:hover { color: var(--navy-mid); }

.lobby-dossier-hero { color: var(--white); background: linear-gradient(118deg, var(--navy-deep, #0c2740) 0%, #153c5b 58%, #1f5964 100%); }
.lobby-dossier-hero-inner { padding: 1.35rem 0 2.7rem; }
.lobby-dossier-hero .breadcrumb { color: rgba(255,255,255,.64); }
.lobby-dossier-hero .breadcrumb span::before { color: var(--gold-soft); }
.lobby-dossier-hero-copy { max-width: 900px; }
.lobby-dossier-hero-copy .eyebrow { color: var(--gold-soft); }
.lobby-dossier-hero-copy h1 { max-width: 800px; margin-bottom: .9rem; font-size: clamp(2.55rem, 5.5vw, 5.4rem); line-height: 1.02; }
.lobby-official-title { max-width: 920px; margin-bottom: 1.15rem; color: rgba(255,255,255,.72); font-size: .78rem; line-height: 1.55; }
.lobby-official-title span { display: block; margin-bottom: .25rem; color: var(--gold-soft); font-size: .57rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.lobby-hero-badges, .lobby-dossier-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.lobby-dossier-actions { margin-top: 1.15rem; color: rgba(255,255,255,.64); font-size: .63rem; }
.lobby-dossier-actions .lobby-source-link { padding: .45rem .6rem; color: var(--navy); background: var(--gold-soft); }
.lobby-dossier-lede { max-width: 780px; margin: 1.45rem 0 0; color: rgba(255,255,255,.9); font-family: var(--serif); font-size: 1rem; line-height: 1.55; }
.lobby-dossier-body { padding: 1.35rem 0 5rem; }
.lobby-reading-ribbon { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; margin-bottom: 1rem; }
.lobby-reading-ribbon article { min-height: 125px; padding: .85rem .9rem; border: 1px solid var(--line); border-top: 2px solid var(--gold); background: rgba(255,253,249,.78); }
.lobby-reading-ribbon span, .lobby-reading-ribbon small { display: block; color: var(--gold); font-size: .56rem; font-weight: 800; letter-spacing: .12em; line-height: 1.3; text-transform: uppercase; }
.lobby-reading-ribbon strong { display: block; margin: .5rem 0 .45rem; font-size: .75rem; line-height: 1.4; }
.lobby-reading-ribbon small { color: var(--muted); font-size: .59rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
.lobby-block { margin-top: 1rem; padding: 1.45rem 1.5rem 1.5rem; border: 1px solid var(--line); background: rgba(255,253,249,.56); }
.lobby-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.2rem; }
.lobby-section-heading .eyebrow { margin-bottom: .35rem; }
.lobby-section-heading h2 { margin-bottom: 0; font-size: clamp(1.5rem, 2.7vw, 2.45rem); }
.lobby-section-heading > p { max-width: 510px; margin: 0; color: var(--ink-soft); font-size: .73rem; line-height: 1.55; }
.lobby-roadmap { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; margin: 0; padding: .4rem 0 0; list-style: none; }
.lobby-roadmap::before { position: absolute; top: 1rem; right: 6%; left: 4%; height: 1px; content: ''; background: linear-gradient(90deg, var(--gold) 0 74%, #9b9e9a 74% 100%); }
.lobby-roadmap-stage { position: relative; display: grid; grid-template-rows: 1.3rem auto; min-width: 0; padding-right: .25rem; }
.lobby-roadmap-marker { position: relative; z-index: 1; width: 1rem; height: 1rem; border: 3px solid var(--gold); border-radius: 50%; background: var(--paper); }
.lobby-roadmap-stage.expected_procedural .lobby-roadmap-marker { border-color: #8b918e; }
.lobby-stage-status { display: inline-block; margin: .2rem 0 .4rem; color: var(--gold); font-size: .55rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.lobby-roadmap-stage.expected_procedural .lobby-stage-status { color: #737a77; }
.lobby-roadmap-stage h3 { min-height: 2.55em; margin-bottom: .35rem; font-size: .88rem; line-height: 1.28; }
.lobby-roadmap-stage p { min-height: 2.6em; margin-bottom: .55rem; color: var(--muted); font-size: .63rem; line-height: 1.45; }
.lobby-evidence-row { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .7rem; }
.lobby-evidence { display: grid; min-width: 0; gap: .1rem; padding: .45rem .5rem; border-left: 2px solid var(--gold); color: var(--ink); background: rgba(234,219,193,.38); }
.lobby-evidence span { color: var(--gold); font-size: .52rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.lobby-evidence strong { font-size: .59rem; line-height: 1.35; }
.lobby-evidence small { color: var(--muted); font-size: .55rem; line-height: 1.3; }
.lobby-conditional { display: grid; grid-template-columns: auto 1fr; gap: .35rem .65rem; margin-top: 1.25rem; padding: .8rem .9rem; border-left: 2px solid #8b918e; background: rgba(236,235,231,.75); }
.lobby-conditional span { color: #727977; font-size: .55rem; font-weight: 800; letter-spacing: .1em; }
.lobby-conditional strong { font-size: .75rem; }
.lobby-conditional p { grid-column: 2; margin: 0; color: var(--ink-soft); font-size: .66rem; line-height: 1.5; }
.lobby-influence-diagram { padding: .8rem; border: 1px solid rgba(185,134,61,.34); background: rgba(255,253,249,.85); }
.lobby-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; }
.lobby-flow li { position: relative; display: flex; min-height: 145px; flex-direction: column; justify-content: center; padding: 1rem 1.15rem; border-right: 1px solid var(--line); }
.lobby-flow li:last-child { border-right: 0; }
.lobby-flow li:not(:last-child)::after { position: absolute; z-index: 2; top: 50%; right: -.45rem; width: .8rem; height: .8rem; content: '→'; color: var(--gold); background: var(--white); font-size: 1rem; line-height: .78rem; text-align: center; transform: translateY(-50%); }
.lobby-flow-index { margin-bottom: .65rem; color: var(--gold); font-size: .57rem; font-weight: 800; letter-spacing: .12em; }
.lobby-flow strong { font-family: var(--serif); font-size: 1rem; font-weight: 400; line-height: 1.3; }
.lobby-flow small { margin-top: .55rem; color: var(--ink-soft); font-size: .66rem; line-height: 1.45; }
.lobby-mechanism-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; margin-top: .65rem; }
.lobby-mechanism-grid div { display: flex; min-height: 58px; align-items: center; gap: .5rem; padding: .6rem; border-top: 2px solid var(--navy); background: rgba(225,241,235,.45); }
.lobby-mechanism-grid span { color: var(--teal); font-size: .55rem; font-weight: 800; }
.lobby-mechanism-grid strong { font-size: .6rem; line-height: 1.3; }
.lobby-change-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.lobby-change-card { display: flex; min-width: 0; flex-direction: column; padding: .9rem; border: 1px solid var(--line); background: var(--white); }
.lobby-card-topline { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .35rem; margin-bottom: .6rem; }
.lobby-card-topline > span:first-child { color: var(--gold); font-size: .56rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.lobby-article-tag { display: inline-flex; width: fit-content; padding: .19rem .32rem; color: var(--ink-soft); background: var(--gray-soft); font-size: .51rem; line-height: 1.2; }
.lobby-change-card h3 { margin-bottom: .35rem; font-size: 1rem; }
.lobby-change-card p { margin-bottom: .25rem; color: var(--ink-soft); font-size: .69rem; line-height: 1.5; }
.lobby-change-card .lobby-evidence-row { margin-top: auto; padding-top: .65rem; }
.lobby-scope-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.lobby-scope-column { padding: .95rem; border: 1px solid var(--line); background: var(--white); }
.lobby-scope-column h3 { margin-bottom: .7rem; font-family: var(--sans); font-size: .65rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.lobby-scope-column ul { display: grid; gap: .65rem; margin: 0; padding: 0; list-style: none; }
.lobby-scope-column li { display: grid; grid-template-columns: 1.25rem 1fr; gap: .45rem; }
.lobby-scope-column li > span { color: var(--teal); font-size: 1rem; font-weight: 800; }
.lobby-scope-column.excluded li > span { color: #9b6b42; }
.lobby-scope-column strong { display: block; font-size: .68rem; line-height: 1.4; }
.lobby-scope-column p, .lobby-scope-column small { display: block; margin: .25rem 0 0; color: var(--ink-soft); font-size: .63rem; line-height: 1.45; }
.lobby-scope-column .lobby-evidence { margin-top: .4rem; }
.lobby-activity-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.lobby-activity-columns article { padding: .9rem; border-top: 2px solid var(--gold); background: var(--white); }
.lobby-mini-label { display: block; margin-bottom: .5rem; color: var(--gold); font-size: .56rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.lobby-activity-columns p { margin: 0; color: var(--ink-soft); font-size: .68rem; line-height: 1.5; }
.lobby-list { display: grid; gap: .4rem; margin: 0; padding-left: 1.1rem; color: var(--ink-soft); font-size: .67rem; line-height: 1.45; }
.lobby-exclusions { margin-top: 1rem; border-top: 1px solid var(--line); }
.lobby-exclusions summary { padding: .75rem 0 .2rem; color: var(--gold); cursor: pointer; font-size: .66rem; font-weight: 800; }
.lobby-exclusions .lobby-list { padding-top: .45rem; }
.lobby-table-wrap { overflow-x: auto; border: 1px solid var(--line); }
.lobby-table { width: 100%; min-width: 760px; border-collapse: collapse; background: var(--white); font-size: .65rem; }
.lobby-table th, .lobby-table td { padding: .72rem .7rem; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; line-height: 1.45; }
.lobby-table thead th { color: var(--gold); background: rgba(234,219,193,.32); font-size: .56rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.lobby-table tbody tr:last-child th, .lobby-table tbody tr:last-child td { border-bottom: 0; }
.lobby-table tbody th { width: 21%; color: var(--ink); font-weight: 800; }
.lobby-table tbody th span { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .35rem; }
.lobby-table tbody td { color: var(--ink-soft); }
.lobby-revolving-grid, .lobby-reality-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.lobby-revolving-grid article, .lobby-reality-grid > div { padding: .95rem; border: 1px solid var(--line); background: var(--white); }
.lobby-revolving-grid article > span, .lobby-reality-grid > div > span { display: block; margin-bottom: .55rem; color: var(--gold); font-size: .56rem; font-weight: 800; letter-spacing: .11em; }
.lobby-revolving-grid h3 { font-size: 1rem; }
.lobby-revolving-grid p, .lobby-reality-grid strong { margin-bottom: 0; color: var(--ink-soft); font-size: .68rem; line-height: 1.55; }
.lobby-footprint-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(250px, .8fr); gap: 1rem; }
.lobby-footprint-layout h3 { margin-bottom: .7rem; font-family: var(--sans); font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.lobby-footprint-layout ol { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.lobby-footprint-layout li { display: flex; align-items: center; gap: .6rem; padding: .55rem .65rem; border-left: 2px solid var(--gold); background: var(--white); font-size: .68rem; line-height: 1.4; }
.lobby-footprint-layout li span { color: var(--gold); font-size: .55rem; font-weight: 800; }
.lobby-footprint-layout aside { padding: 1rem; border: 1px solid var(--gold-soft); background: rgba(234,219,193,.4); }
.lobby-footprint-layout aside > span, .lobby-footprint-layout aside strong { display: block; }
.lobby-footprint-layout aside > span { margin-bottom: .55rem; color: var(--gold); font-size: .56rem; font-weight: 800; letter-spacing: .11em; }
.lobby-footprint-layout aside strong { font-family: var(--serif); font-size: .95rem; font-weight: 400; line-height: 1.35; }
.lobby-footprint-layout aside p { margin: .75rem 0 0; color: var(--ink-soft); font-size: .64rem; line-height: 1.5; }
.lobby-sanction-level { display: block !important; margin: 0 0 .38rem !important; color: var(--gold) !important; font-size: .59rem !important; letter-spacing: .1em; text-transform: uppercase; }
.lobby-sanctions-table tbody th { width: 28%; }
.lobby-actor-cards { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .5rem; }
.lobby-actor-cards article { min-width: 0; padding: .75rem; border: 1px solid var(--line); background: var(--white); }
.lobby-actor-cards h3 { margin: .55rem 0 .4rem; font-size: .83rem; line-height: 1.3; }
.lobby-actor-cards p { min-height: 3em; margin-bottom: .55rem; color: var(--ink-soft); font-size: .59rem; line-height: 1.4; }
.lobby-relation-status, .lobby-watch-status { display: inline-flex; width: fit-content; padding: .25rem .35rem; color: var(--teal); background: var(--teal-soft); font-size: .51rem; font-weight: 800; letter-spacing: .05em; line-height: 1.25; text-transform: uppercase; }
.lobby-relation-status.expected_procedural, .lobby-relation-status.confirmed_historical { color: #785d35; background: var(--gold-soft); }
.lobby-relation-status.confirmed_infrastructure { color: var(--ink-soft); background: var(--gray-soft); }
.lobby-subsection-title { margin: 1.3rem 0 .7rem; font-family: var(--sans); font-size: .67rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.lobby-table td .lobby-relation-status + small { display: block; margin-top: .35rem; color: var(--muted); font-size: .58rem; }
.lobby-watch-list { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.lobby-watch-list li { display: grid; grid-template-columns: 145px minmax(0, 1fr) auto; gap: .8rem; align-items: start; padding: .75rem .8rem; border-top: 1px solid var(--line); background: var(--white); }
.lobby-watch-list li:first-child { border-top: 0; }
.lobby-watch-list strong { display: block; font-size: .69rem; line-height: 1.4; }
.lobby-watch-list p { margin: .2rem 0 0; color: var(--ink-soft); font-size: .62rem; line-height: 1.4; }
.lobby-watch-status.expected_procedural { color: #785d35; background: var(--gold-soft); }
.lobby-watch-status.implementation_monitor, .lobby-watch-status.confirmed_monitor { color: var(--ink-soft); background: var(--gray-soft); }
.lobby-reality-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lobby-reality-grid strong { display: block; }
.lobby-reality-grid .lobby-list { padding-left: 1rem; }
.lobby-related-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid var(--gold-soft); background: rgba(234,219,193,.32); }
.lobby-related-card h3 { margin: .55rem 0 0; font-family: var(--sans); font-size: .78rem; font-weight: 800; letter-spacing: .02em; }
.lobby-source-list, .lobby-source-related { display: grid; gap: .5rem; }
.lobby-source-related { margin-top: 1.1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.lobby-source-row { display: grid; gap: .22rem; padding: .8rem .85rem; border-left: 3px solid var(--gold); background: var(--white); }
.lobby-source-row.related { border-left-color: #8b918e; }
.lobby-source-row > span { color: var(--gold); font-size: .56rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.lobby-source-row strong { font-size: .72rem; line-height: 1.4; }
.lobby-source-row small { color: var(--muted); font-size: .59rem; line-height: 1.35; }
.lobby-source-related .lobby-mini-label { margin-bottom: .1rem; }

@media (max-width: 1040px) {
  .home-areas .area-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lobby-area-hero-inner, .lobby-area-content, .lobby-dossier-hero-inner, .lobby-dossier-body { width: min(100% - 64px, var(--content)); }
  .lobby-actor-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
  .home-areas .area-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lobby-area-hero-inner, .lobby-area-content, .lobby-dossier-hero-inner, .lobby-dossier-body { width: min(100% - 32px, var(--content)); }
  .lobby-area-hero-inner { display: block; padding: 1.4rem 0 1.8rem; }
  .lobby-area-hero .breadcrumb { margin-bottom: 1.35rem; }
  .lobby-area-copy h1 { font-size: clamp(2.9rem, 15vw, 4.2rem); }
  .lobby-area-status { margin-top: 1.5rem; padding-left: .85rem; }
  .lobby-area-content { padding: 1.8rem 0 3.2rem; }
  .lobby-area-intro { display: block; }
  .lobby-area-intro .async-status { min-height: 0; }
  .lobby-dossier-card-link { display: block; padding: 1.15rem; }
  .lobby-dossier-card-facts { margin-top: 1.2rem; }
  .lobby-dossier-card-facts > div { grid-template-columns: 105px 1fr; }
  .lobby-dossier-hero-inner { padding: 1rem 0 2rem; }
  .lobby-dossier-hero-copy h1 { font-size: clamp(2.35rem, 12vw, 3.55rem); }
  .lobby-official-title { font-size: .7rem; }
  .lobby-dossier-body { padding-bottom: 3.3rem; }
  .lobby-reading-ribbon { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lobby-reading-ribbon article { min-height: 112px; }
  .lobby-block { padding: 1.05rem; }
  .lobby-section-heading { display: block; }
  .lobby-section-heading > p { margin-top: .75rem; }
  .lobby-roadmap { display: block; padding-left: 1rem; }
  .lobby-roadmap::before { top: 1rem; bottom: 1.1rem; left: .47rem; width: 1px; height: auto; background: linear-gradient(180deg, var(--gold) 0 74%, #9b9e9a 74% 100%); }
  .lobby-roadmap-stage { grid-template-columns: 1.1rem 1fr; grid-template-rows: auto; gap: .65rem; margin-bottom: .8rem; padding: 0; }
  .lobby-roadmap-stage h3, .lobby-roadmap-stage p { min-height: 0; }
  .lobby-roadmap-marker { margin-top: .2rem; }
  .lobby-roadmap-stage > div:last-child { padding-bottom: .4rem; }
  .lobby-flow { display: block; }
  .lobby-flow li { min-height: 0; padding: .9rem .8rem; border-right: 0; border-bottom: 1px solid var(--line); }
  .lobby-flow li:last-child { border-bottom: 0; }
  .lobby-flow li:not(:last-child)::after { top: auto; right: auto; bottom: -.52rem; left: 50%; content: '↓'; transform: translateX(-50%); }
  .lobby-mechanism-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lobby-change-grid, .lobby-scope-grid, .lobby-activity-columns, .lobby-revolving-grid, .lobby-footprint-layout, .lobby-reality-grid { grid-template-columns: 1fr; }
  .lobby-change-card { padding: .8rem; }
  .lobby-actor-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lobby-watch-list li { grid-template-columns: 1fr; gap: .45rem; }
  .lobby-related-card { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 390px) {
  .home-areas .area-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lobby-reading-ribbon, .lobby-actor-cards, .lobby-mechanism-grid { grid-template-columns: 1fr; }
}
.journey-page { background-image: none; }
.agenda-note { max-width: 640px; margin: -.35rem 0 1.2rem; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.card-supporting { margin-top: .7rem; color: var(--muted); font-size: .62rem; font-weight: 700; }
.detail-layer { margin: -.2rem 0 .75rem; color: var(--gold); font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.stakeholder-node.layer-government { border-width: 2px; }
.stakeholder-node.layer-legislature { border-style: dashed; }

/* C5: the Lobby dossier follows the decision utility order. Canonical depth
   remains in closed details so the first plane answers the PA questions first. */
.lobby-c5-dossier .lobby-c5-section { padding: 1.25rem 0 1.45rem; }
.lobby-c5-dossier .lobby-section-heading { margin-bottom: .8rem; }
.lobby-c5-dossier .lobby-section-heading > p { max-width: 620px; font-size: .68rem; }
.lobby-c5-dossier .lobby-roadmap-stage h3 { min-height: 0; margin-bottom: .25rem; font-size: .8rem; }
.lobby-c5-dossier .lobby-roadmap-stage p { min-height: 0; margin-bottom: .35rem; font-size: .59rem; }
.lobby-c5-dossier .lobby-roadmap-stage .lobby-evidence-row { display: none; }
.lobby-c5-dossier .lobby-conditional { margin-top: .8rem; padding: .6rem .75rem; }
.lobby-c5-dossier .lobby-conditional-grid article { padding: .45rem .55rem; }
.lobby-c5-dossier .lobby-conditional-grid article strong { font-size: .66rem; }
.lobby-c5-dossier .lobby-conditional-grid article p { font-size: .58rem; }
.lobby-c5-dossier .lobby-actors-block .lobby-table th,
.lobby-c5-dossier .lobby-actors-block .lobby-table td { padding: .52rem .58rem; font-size: .58rem; }
.lobby-pa-summary-grid, .lobby-key-clock-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.lobby-pa-summary { min-width: 0; padding: .85rem .9rem; border-top: 2px solid var(--gold); background: rgba(255,255,255,.76); }
.lobby-pa-summary h3 { margin-bottom: .35rem; font-size: .86rem; line-height: 1.3; }
.lobby-pa-summary p { margin: 0; color: var(--ink-soft); font-size: .65rem; line-height: 1.45; }
.lobby-key-clock { display: grid; min-width: 0; padding: .8rem .85rem; border: 1px solid var(--line); background: rgba(255,255,255,.76); }
.lobby-key-clock > span { color: var(--gold); font-size: .54rem; font-weight: 900; letter-spacing: .12em; }
.lobby-key-clock > strong { margin: .25rem 0 .35rem; color: var(--navy); font-family: var(--serif); font-size: 1.45rem; font-weight: 400; line-height: 1; }
.lobby-key-clock h3 { margin-bottom: .25rem; font-size: .72rem; line-height: 1.3; }
.lobby-key-clock p { margin: 0 0 .45rem; color: var(--ink-soft); font-size: .6rem; line-height: 1.4; }
.lobby-inline-detail { margin-top: .7rem; border-top: 1px solid var(--line); }
.lobby-inline-detail summary { display: flex; align-items: center; justify-content: space-between; padding: .7rem .1rem .25rem; color: var(--gold); font-size: .65rem; font-weight: 800; cursor: pointer; list-style: none; }
.lobby-inline-detail summary::-webkit-details-marker { display: none; }
.lobby-inline-detail summary::after { content: '＋'; font-size: .95rem; font-weight: 400; }
.lobby-inline-detail[open] summary::after { content: '−'; }
.lobby-v14-pa-detail-grid, .lobby-all-clock-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; padding: .5rem 0 .15rem; }
.lobby-v14-pa-detail-card { display: flex; min-width: 0; flex-direction: column; padding: .72rem; border: 1px solid var(--line); background: var(--white); }
.lobby-v14-pa-detail-card h3 { margin-bottom: .28rem; font-size: .75rem; line-height: 1.3; }
.lobby-v14-pa-detail-card p { flex: 1; margin: 0; color: var(--ink-soft); font-size: .6rem; line-height: 1.42; }
.lobby-v14-pa-detail-card .lobby-evidence-row { margin-top: .55rem; }
.lobby-deep-clock { padding: .65rem; }
.lobby-deep-clock .lobby-card-topline { min-height: 0; margin-bottom: .25rem; }
.lobby-deep-clock h3 { margin: .25rem 0 .2rem; font-size: .68rem; }
.lobby-deep-clock > strong { font-size: .55rem; }
.lobby-deep-clock p { margin: .25rem 0 .35rem; font-size: .57rem; line-height: 1.35; }
.lobby-primary-evidence { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: .6rem; }
.lobby-primary-source, .lobby-situation-sources { min-width: 0; padding: .75rem; border: 1px solid var(--line); background: rgba(255,255,255,.76); }
.lobby-primary-source { border-top: 2px solid var(--gold); }
.lobby-primary-source > p, .lobby-situation-sources > p { margin: 0 0 .45rem; color: var(--gold); font-size: .55rem; font-weight: 900; letter-spacing: .12em; }
.lobby-situation-sources { display: grid; gap: .45rem; }
.lobby-situation-sources > p { grid-column: 1 / -1; margin-bottom: 0; }
.lobby-primary-evidence .lobby-source-row { padding: .55rem .6rem; }
.lobby-primary-evidence .lobby-source-row strong { font-size: .65rem; }
.lobby-primary-evidence .lobby-source-row small { font-size: .54rem; }
.lobby-c5-dossier .lobby-related-card { padding: .75rem .85rem; }
.lobby-c5-dossier .lobby-related-card h3 { margin-top: .35rem; font-size: .7rem; }
.lobby-deep-analysis-block { padding-bottom: 2rem; }
.lobby-deep-analysis-details { gap: .35rem; }
.lobby-deep-analysis-details > details { background: rgba(255,255,255,.52); }
.lobby-deep-analysis-details > details > summary { padding: .8rem .1rem; font-size: .72rem; }
.lobby-deep-analysis-details > details > :not(summary) { padding: 0 .1rem 1rem; }
.lobby-activity-detail, .lobby-deep-subsection { margin-top: .9rem; padding-top: .85rem; border-top: 1px solid var(--line); }
.lobby-activity-detail > h3, .lobby-deep-subsection > h3 { margin-bottom: .45rem; font-size: .82rem; }
.lobby-deep-subsection > p:not(.lobby-mini-label) { margin: 0 0 .65rem; color: var(--ink-soft); font-size: .64rem; line-height: 1.45; }
.lobby-nested-detail { margin-top: .7rem; border-top: 1px solid var(--line); }
.lobby-nested-detail summary { padding: .6rem 0 .1rem; color: var(--gold); font-size: .62rem; font-weight: 800; cursor: pointer; }
.lobby-c5-dossier .lobby-table { font-size: .6rem; }
.lobby-c5-dossier .lobby-table th, .lobby-c5-dossier .lobby-table td { padding: .58rem .62rem; }
.lobby-c5-dossier .lobby-revolving-grid article { padding: .8rem; }
.lobby-c5-dossier .lobby-revolving-grid h3 { font-size: .86rem; }
.lobby-c5-dossier .lobby-revolving-grid p { font-size: .62rem; }
.lobby-c5-dossier .lobby-footprint-layout { gap: .75rem; }
.lobby-c5-dossier .lobby-footprint-layout li { padding: .45rem .55rem; font-size: .62rem; }
.lobby-c5-dossier .lobby-footprint-layout aside { padding: .75rem; }
.lobby-c5-dossier .lobby-footprint-layout aside strong { font-size: .82rem; }
.lobby-c5-dossier .lobby-footprint-layout aside p { margin-top: .55rem; font-size: .6rem; }

/* Identity closure for the Lobby projection: marks explain the node type and
   never imply an official logo for a cluster or regulated subject. */
.stakeholder-map-v314 .identity-class-conceptual-cluster .map-node-identity,
.stakeholder-map-v314 .identity-class-regulated-subject .map-node-identity { border-style: dashed; }
.stakeholder-map-v314 .identity-class-regulated-subject .map-node-identity { color: #765786; border-color: rgba(129,91,143,.62); background: rgba(250,246,252,.98); }
.stakeholder-map-v314 .identity-class-official-identity-unavailable .map-node-identity { border-style: dotted; color: #376b9e; }
.stakeholder-map-v314 .identity-class-parent-identity .map-node-identity { border-style: dashed; border-color: rgba(42,171,148,.62); }
.stakeholder-map-v314 .map-node-identity.identity-logo[src$="ctbg-mark.png"] { padding: .14rem; }
.stakeholder-map-v314 .map-node-identity.identity-logo[src$="ctbg-logo.png"] { max-width: 72px; max-height: 28px; object-fit: contain; object-position: center; }
.stakeholder-map-v314 .map-node-identity.identity-logo[src$="public-sector-concept.svg"],
.stakeholder-map-v314 .map-node-identity.identity-logo[src$="interest-groups-concept.svg"] { width: 48px; height: 34px; max-width: 48px; max-height: 34px; object-fit: contain; }
.stakeholder-map-v314 .map-node-identity.identity-logo[src$="spain-ccaa-map.svg"] { width: 52px; height: 32px; max-width: 52px; max-height: 32px; object-fit: contain; }
.stakeholder-map-v314 .detail-identity img[src$="ctbg-logo.png"] { width: 44px; height: 30px; }

@media (max-width: 780px) {
  .lobby-pa-summary-grid, .lobby-key-clock-grid, .lobby-v14-pa-detail-grid, .lobby-all-clock-grid { grid-template-columns: 1fr; }
  .lobby-primary-evidence { grid-template-columns: 1fr; }
  .lobby-c5-dossier .lobby-roadmap-stage .lobby-evidence-row { display: none; }
  .lobby-c5-dossier .lobby-actors-block .lobby-table th,
  .lobby-c5-dossier .lobby-actors-block .lobby-table td { padding: .5rem .52rem; font-size: .55rem; }
  .lobby-c5-dossier .lobby-section-heading > p { font-size: .64rem; }
}
.stakeholder-node.layer-technical { box-shadow: 0 0 0 4px rgba(77,137,194,.08), 0 5px 16px rgba(17,31,66,.07); }
.stakeholder-node.layer-implementation { border-color: rgba(42,171,148,.55); }
.stakeholder-node.layer-sector { border-color: rgba(184,137,59,.42); }
.stakeholder-node.power-decision { border-width: 3px; border-color: var(--navy); }
.stakeholder-node.power-direction { border-width: 2px; border-color: var(--gold); }
.stakeholder-node.power-legislation { border-style: dashed; border-color: #6b7f99; }
.stakeholder-node.power-regulation { box-shadow: 0 0 0 4px rgba(77,137,194,.1), 0 5px 16px rgba(17,31,66,.07); }
.stakeholder-node.power-implementation { border-color: rgba(20,141,120,.7); }
.stakeholder-node.power-participation { border-color: rgba(184,137,59,.42); }
.stakeholder-map-stage.map-dense { min-height: 720px; }
.stakeholder-map.map-dense { min-height: 720px; }
.stakeholder-map.map-dense .stakeholder-node { width: 112px; min-height: 78px; padding: .58rem .48rem; }
.stakeholder-map.map-dense .stakeholder-node strong { max-width: 94px; font-size: .56rem; -webkit-line-clamp: 3; }
.stakeholder-map.map-dense .stakeholder-node small { margin-top: .18rem; font-size: .43rem; }
.area-hero { background-image: radial-gradient(circle at 76% 44%, rgba(184,137,59,.08) 0 1px, transparent 1.5px), repeating-radial-gradient(ellipse at 76% 44%, transparent 0 105px, rgba(184,137,59,.06) 106px 107px, transparent 108px 210px); }
.area-hero h1 { font-size: clamp(2.8rem, 4.3vw, 4.35rem); }
.topic-card h2 { -webkit-line-clamp: 2; }
.journey-copy h1, .journey-copy.long-title h1 { display: block; overflow: visible; max-width: 720px; font-size: clamp(2.45rem, 3.65vw, 3.55rem); line-height: 1.08; text-wrap: balance; }
.signal-group-label { margin: 1rem 0 .55rem; color: var(--muted); font-size: .58rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.stakeholder-node.size-large { width: 138px; min-height: 94px; }
.stakeholder-node.size-small { width: 108px; min-height: 74px; opacity: .88; }
.stakeholder-node.size-large strong { max-width: 116px; }
.stakeholder-node.size-small strong { max-width: 92px; }
.stakeholder-map.map-dense .stakeholder-node.size-large { width: 116px; min-height: 80px; }
.stakeholder-map.map-dense .stakeholder-node.size-small { width: 104px; min-height: 74px; }
@media (max-width: 780px) {
  .stakeholder-map-stage.map-dense, .stakeholder-map.map-dense { min-height: 920px; }
  .stakeholder-map.map-dense .map-clusters { position: absolute; top: .45rem; right: .5rem; left: .5rem; max-width: none; margin: 0; justify-content: center; }
  .stakeholder-map.map-dense .stakeholder-node { width: 76px; min-height: 60px; padding: .34rem .24rem; }
  .stakeholder-map.map-dense .stakeholder-node strong { max-width: 64px; font-size: .42rem; line-height: 1.18; -webkit-line-clamp: 3; }
  .stakeholder-map.map-dense .stakeholder-node small { margin-top: .14rem; font-size: .36rem; letter-spacing: .03em; }
  .stakeholder-map.map-dense .stakeholder-node .node-lineage { font-size: .32rem; }
  .stakeholder-map.map-dense .stakeholder-node.size-large { width: 84px; min-height: 66px; }
  .stakeholder-map.map-dense .stakeholder-node.size-small { width: 72px; min-height: 58px; }
  .stakeholder-map.map-dense .institution-identity { width: 18px; height: 18px; min-width: 18px; margin-bottom: .2rem; font-size: .32rem; }
}
.agenda-dossier { border-top: 2px solid var(--gold); }
.agenda-dossier .panel-heading { align-items: flex-start; }
.dossier-depth-facts { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; }
.dossier-depth-facts span { display: grid; gap: .15rem; min-width: 112px; padding: .55rem .65rem; border: 1px solid var(--line); color: var(--muted); font-size: .57rem; }
.dossier-depth-facts b { color: var(--ink); font-size: .84rem; }
.signal-card.topic-context { border-style: dashed; }
.dossier-summary { max-width: 780px; color: var(--ink-soft); font-size: .86rem; line-height: 1.65; }
.dossier-journeys { display: grid; gap: .55rem; margin-top: 1.2rem; }
.dossier-journey { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .72rem .85rem; border: 1px solid var(--line); background: rgba(255,255,255,.55); }
.dossier-journey strong { font-size: .72rem; }
.dossier-journey span { color: var(--gold); font-size: .63rem; white-space: nowrap; }
.institution-page { width: min(1280px, calc(100% - 104px)); margin: 0 auto; padding: 4rem 0 5rem; }
.institution-header { padding-bottom: 2rem; border-bottom: 1px solid var(--line); }
.institution-title-row { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.institution-title-row h1 { max-width: 850px; margin-bottom: .75rem; font-size: clamp(2.5rem, 5vw, 4.6rem); }
.official-button { display: inline-flex; align-items: center; min-height: 40px; padding: .65rem .9rem; color: var(--white); background: var(--navy); font-size: .68rem; font-weight: 800; white-space: nowrap; }
.institution-facts { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.6rem; }
.institution-facts span { display: grid; gap: .22rem; min-width: 140px; padding: .7rem .8rem; border: 1px solid var(--line); background: rgba(255,255,255,.55); color: var(--ink-soft); font-size: .68rem; }
.institution-facts b { color: var(--gold); font-size: .57rem; letter-spacing: .12em; text-transform: uppercase; }
.institution-section { margin-top: 2.4rem; }
.institution-role { max-width: 760px; color: var(--ink-soft); font-size: .88rem; line-height: 1.65; }
.institution-agenda-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.institution-agenda-card { display: block; min-height: 190px; padding: 1rem; border: 1px solid var(--line); background: var(--white); }
.institution-agenda-card h3 { font-family: var(--serif); font-size: 1.1rem; }
.institution-agenda-card p { color: var(--ink-soft); font-size: .7rem; line-height: 1.5; }
.institution-agenda-card small { color: var(--gold); font-size: .62rem; font-weight: 800; }
.institution-child-list { display: grid; max-width: 900px; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.institution-child-list a { display: grid; gap: .25rem; padding: .75rem .8rem; border: 1px solid var(--line); background: rgba(255,255,255,.55); }
.institution-child-list strong { font-size: .68rem; line-height: 1.3; }
.institution-child-list span { color: var(--muted); font-size: .58rem; }
.institution-activity { display: grid; gap: 0; max-width: 820px; padding: 0; margin: 0; list-style: none; border-top: 1px solid var(--line); }
.institution-activity li { display: grid; grid-template-columns: 130px 1fr auto; gap: .8rem; align-items: center; padding: .75rem 0; border-bottom: 1px solid var(--line); font-size: .7rem; }
.institution-activity time, .institution-activity span { color: var(--muted); font-size: .62rem; }

/* The public Atlas shares Normativo's information architecture but keeps its
   reading surface light. The institutional image is Home-owned only. */
.site-footer { color: var(--ink-soft); background: var(--white); border-top: 1px solid var(--line); }
.footer-intro p { color: var(--muted); }
.footer-brand img { filter: brightness(0) saturate(100%); opacity: .92; }
.footer-label { color: var(--gold); }
.footer-links a, .footer-contact a { color: var(--ink-soft); }
.footer-links a:hover, .footer-contact a:hover { color: var(--gold); }
.footer-bottom { border-top-color: var(--line); color: var(--muted); }

/* V3.10: the areas menu is a small anchored control, not a detached mega-menu. */
.areas-menu { z-index: 4; }
.area-menu-list { transform-origin: top right; }
.area-menu-list a { white-space: normal; }

/* V3.10: institutional map labels are public semantics, not internal bands. */
.map-rings {
  inset: 2% 2.5%;
  mask-image: none;
  background:
    radial-gradient(circle at center, transparent 0 21%, rgba(184,137,59,.18) 21.2% 21.45%, transparent 21.7% 42%, rgba(184,137,59,.16) 42.2% 42.45%, transparent 42.7% 63%, rgba(42,171,148,.15) 63.2% 63.45%, transparent 63.7% 84%, rgba(26,46,94,.12) 84.2% 84.45%, transparent 84.7% 100%),
    linear-gradient(90deg, transparent 49.94%, rgba(184,137,59,.08) 50%, transparent 50.06%),
    linear-gradient(0deg, transparent 49.94%, rgba(184,137,59,.08) 50%, transparent 50.06%);
}
.ring-label { z-index: 1; padding: .16rem .28rem; border: 1px solid rgba(184,137,59,.18); background: rgba(249,248,246,.82); font-size: .47rem; line-height: 1.25; white-space: nowrap; }
.ring-decision { top: 34%; left: 5%; transform: none; color: rgba(12,39,64,.76); }
.ring-legislation { top: 17%; right: 5%; left: auto; transform: none; }
.ring-implementation { top: 7%; left: 7%; transform: none; }
.ring-participation { top: auto; right: 5%; bottom: 8%; left: auto; transform: none; color: rgba(20,141,120,.76); }
.map-legend .legend-power-labels b { font-size: .5rem; letter-spacing: .02em; }
.stakeholder-node .node-badge { display: inline-grid; min-width: 1.18rem; height: 1.18rem; place-items: center; margin: 0 0 .25rem; border-radius: 50%; color: var(--white); background: var(--teal); font-size: .48rem; font-weight: 800; }
.cluster-preview { width: min(260px, calc(100% - 1.2rem)); }
.cluster-preview .cluster-preview-action { margin-top: .15rem; color: var(--gold); font-size: .55rem; font-weight: 800; }
.detail-cluster-items { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 330px; gap: .4rem; }
.detail-cluster-item { min-width: 0; }
.detail-cluster-item .territory-name { color: var(--ink); font-size: .62rem; font-weight: 800; }
.detail-cluster-item .territory-institution { color: var(--muted); font-size: .54rem; line-height: 1.35; }
.detail-cluster-item .territory-status { color: var(--teal); font-size: .51rem; font-weight: 800; }
.institution-facts .fact-functional { min-width: 220px; }
.institution-profile-identity { max-width: 760px; color: var(--ink-soft); font-size: .88rem; line-height: 1.65; }
.cluster-intro { margin: -.2rem 0 .65rem; color: var(--ink-soft); font-size: .65rem; line-height: 1.45; }
.card-actor > span { display: inline-flex; flex-direction: column; gap: .08rem; }
.card-actor small { color: var(--muted); font-size: .52rem; font-weight: 500; }
.institution-relationships { display: grid; max-width: 760px; gap: .65rem; color: var(--ink-soft); font-size: .78rem; line-height: 1.55; }
.institution-relationships p { margin: 0; }
.institution-relationships strong { display: block; margin-bottom: .15rem; color: var(--gold); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 780px) {
  .ring-label { font-size: .38rem; }
  .ring-decision { top: 34%; left: 2%; }
  .ring-legislation { top: 17%; right: 2%; }
  .ring-implementation { top: 6%; left: 2%; }
  .ring-participation { right: 2%; bottom: 7%; }
  .detail-cluster-items { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 780px) {
  .area-hero { background-image: radial-gradient(circle at 82% 36%, rgba(184,137,59,.08) 0 1px, transparent 1.5px), repeating-radial-gradient(ellipse at 82% 36%, transparent 0 80px, rgba(184,137,59,.05) 81px 82px, transparent 83px 160px); }
  .dossier-journey { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .institution-page { width: calc(100% - 32px); padding: 2.6rem 0 3.5rem; }
  .institution-title-row { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .institution-title-row h1 { font-size: clamp(2.25rem, 11vw, 3.35rem); }
  .institution-agenda-grid { grid-template-columns: 1fr; }
  .institution-child-list { grid-template-columns: 1fr; }
  .institution-activity li { grid-template-columns: 1fr; gap: .25rem; }
  .dossier-depth-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .journey-copy h1, .journey-copy.long-title h1 { font-size: clamp(2.15rem, 9.4vw, 3rem); line-height: 1.09; }
  .stakeholder-node.size-large { width: 108px; min-height: 78px; }
  .stakeholder-node.size-small { width: 88px; min-height: 64px; }
  .stakeholder-node.size-large strong { max-width: 92px; }
  .stakeholder-node.size-small strong { max-width: 76px; }
}

/* V2.3 product finish: compact verified institution profiles and legible
   dossiers. Keep these rules last so the older Atlas surface cannot re-expand
   the public reading hierarchy. */
.journey-copy h1, .journey-copy.long-title h1 {
  max-width: 720px;
  font-size: clamp(2.35rem, 3.3vw, 3.25rem);
  line-height: 1.08;
}
.institution-page { width: min(1160px, calc(100% - 64px)); padding: 2.9rem 0 4.2rem; }
.institution-header { padding: 1.25rem 0 1.55rem; }
.institution-hero { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem 1.25rem; }
.institution-mark { display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid rgba(184,137,59,.65); border-radius: 50%; color: var(--gold); background: var(--paper); font-size: .78rem; font-weight: 800; letter-spacing: .08em; }
.institution-profile-logo { width: 42px; height: 42px; object-fit: contain; }
.identity-fallback-note { display: block; max-width: 620px; color: var(--muted); font-size: .58rem; line-height: 1.45; }
.institution-hero-copy { min-width: 0; }
.institution-hero-copy .eyebrow { margin-bottom: .3rem; }
.institution-hero-copy h1 { margin: 0 0 .35rem; font-family: var(--serif); font-size: clamp(2rem, 4vw, 3.55rem); line-height: 1.04; }
.institution-acronym { margin: 0 0 .25rem; color: var(--gold); font-size: .64rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.institution-hero-copy .lede { max-width: 680px; margin: 0; font-size: .78rem; line-height: 1.5; }
.institution-title-row { display: contents; }
.institution-facts { gap: .45rem; margin-top: 1.15rem; }
.institution-facts span { min-width: 132px; padding: .55rem .7rem; font-size: .64rem; }
.institution-section { margin-top: 1.75rem; }
.institution-role { max-width: 720px; font-size: .8rem; line-height: 1.55; }
.institution-agenda-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.institution-agenda-card { min-height: 155px; padding: .85rem .9rem; }
.institution-agenda-card h3 { margin: .45rem 0 .4rem; font-size: 1rem; line-height: 1.2; }
.institution-agenda-card p { min-height: 2.8em; margin-bottom: .65rem; font-size: .66rem; }
.institution-agenda-card small { font-size: .58rem; }
.institution-activity { max-width: 900px; }
.institution-activity li { grid-template-columns: 112px minmax(0,1fr) auto; padding: .6rem 0; font-size: .66rem; }
.institution-activity time, .institution-activity span { font-size: .58rem; }
.institution-mark { width: auto; min-width: 58px; height: 58px; padding: 0 .15rem; border: 0; border-radius: 0; background: transparent; color: var(--navy); }
.institution-profile-logo { width: auto; max-width: 150px; height: auto; max-height: 56px; }
.institution-phase-chips { display: flex; flex-wrap: wrap; gap: .32rem; margin: .05rem 0 .7rem; }
.institution-phase-chips span { padding: .22rem .35rem; border: 1px solid rgba(20,141,120,.2); color: var(--teal); background: rgba(225,241,235,.34); font-size: .54rem; font-weight: 800; letter-spacing: .05em; }
.institution-profile-bullets { display: grid; max-width: 760px; gap: .45rem; padding-left: 1.1rem; color: var(--ink-soft); font-size: .78rem; line-height: 1.55; }
.institution-profile-bullets li::marker { color: var(--gold); }
.institution-intelligence .section-label { margin-top: 1.15rem; }
.institution-intelligence .section-label:first-child { margin-top: 0; }

@media (max-width: 780px) {
  .journey-copy h1, .journey-copy.long-title h1 { font-size: clamp(2rem, 9.4vw, 2.65rem); }
  .institution-page { width: calc(100% - 32px); padding: 2rem 0 3rem; }
  .institution-hero { grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .8rem; }
  .institution-mark { min-width: 48px; width: auto; height: 48px; font-size: .66rem; }
  .institution-profile-logo { max-width: 110px; max-height: 46px; }
  .institution-hero-copy h1 { font-size: clamp(1.75rem, 8.5vw, 2.45rem); }
  .institution-hero-copy .lede { font-size: .72rem; }
  .institution-hero .official-button { grid-column: 1 / -1; justify-self: start; }
  .institution-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .institution-facts span, .institution-facts .fact-functional { min-width: 0; }
  .institution-agenda-grid { grid-template-columns: 1fr; }
}

/* V3.2 decision intelligence and document hierarchy.  These are additive
   content components; the existing map geometry and page grid stay intact. */
.decision-intelligence .decision-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(240px, .85fr); gap: 1rem; }
.decision-card, .watch-list { min-width: 0; padding: 1rem; border: 1px solid var(--line); background: rgba(255,255,255,.52); }
.decision-card.current-window-card { border-color: rgba(185, 134, 61, .65); background: rgba(185, 134, 61, .07); }
.decision-card h3 { margin: .25rem 0 .35rem; color: var(--navy); font-family: var(--serif); font-size: 1.5rem; line-height: 1.08; }
.decision-card p { margin: 0 0 .5rem; color: var(--ink); font-size: .78rem; }
.decision-card small, .watch-item span { color: var(--muted); font-size: .62rem; line-height: 1.4; }
.watch-list { display: grid; align-content: start; gap: .55rem; }
.watch-list .eyebrow { margin-bottom: 0; }
.watch-item { display: grid; gap: .15rem; padding-top: .5rem; border-top: 1px solid var(--line); }
.watch-item strong { color: var(--navy); font-size: .72rem; }
.document-hierarchy .document-primary { max-width: 760px; margin-bottom: .8rem; }
.document-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.document-row { display: grid; gap: .22rem; min-width: 0; padding: .72rem .78rem; border: 1px solid var(--line); color: var(--ink); background: rgba(255,255,255,.48); text-decoration: none; }
.document-row:hover, .document-row:focus-visible { border-color: var(--gold); outline: none; }
.document-row span { color: var(--gold); font-size: .52rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.document-row strong { color: var(--navy); font-size: .72rem; line-height: 1.3; }
.document-row small { color: var(--muted); font-size: .58rem; line-height: 1.35; }
.document-more { margin-top: .75rem; color: var(--navy); font-size: .65rem; }
.document-more summary { cursor: pointer; }
.document-more .document-list { margin-top: .65rem; }
.detail-section-label { margin: .75rem 0 .35rem; color: var(--gold); font-size: .55rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.detail-decision-list { display: grid; gap: .35rem; }
.detail-decision-item { display: grid; gap: .12rem; padding: .4rem .5rem; border-left: 2px solid var(--gold); background: rgba(185,134,61,.06); }
.detail-decision-item strong { color: var(--navy); font-size: .62rem; }
.detail-decision-item span { color: var(--muted); font-size: .55rem; }

@media (max-width: 780px) {
  .decision-intelligence .decision-layout { grid-template-columns: 1fr; }
  .decision-card h3 { font-size: 1.28rem; }
  .document-list { grid-template-columns: 1fr; }
}

/* V3.6 launch surface: the map is the area page's primary reading surface. */
.skip-link:focus { top: -4rem; }
.skip-link:focus-visible { top: 1rem; }
.site-header { z-index: 50; }
.home-hero,
.home-hero { background-image: linear-gradient(90deg, rgba(249,248,246,1) 0%, rgba(249,248,246,.98) 38%, rgba(249,248,246,.64) 66%, rgba(249,248,246,.08) 100%), url('/atlas/assets/atlas-institutional-hero.webp'); }
.area-hero { min-height: 0; padding: 1.8rem 0 2.25rem; background-image: radial-gradient(circle at 76% 44%, rgba(184,137,59,.055) 0 1px, transparent 1.5px), repeating-radial-gradient(ellipse at 76% 44%, transparent 0 118px, rgba(184,137,59,.045) 119px 120px, transparent 121px 238px); }
.area-hero-inner { display: block; width: min(1280px, calc(100% - 104px)); }
.area-copy { padding-top: 0; }
.area-hero .breadcrumb { margin-bottom: 1.15rem; }
.area-hero h1 { max-width: none; margin-bottom: .35rem; font-size: clamp(2.8rem, 4.4vw, 4.35rem); }
.area-description { max-width: 650px; margin-bottom: 0; font-size: .88rem; }
.area-map-layout { position: relative; margin-top: 1.5rem; }
.stakeholder-map-stage { min-height: 700px; height: 700px; overflow: visible; }
.stakeholder-map { min-height: 700px; height: 700px; overflow: hidden; border: 1px solid rgba(184,137,59,.17); background: rgba(255,255,255,.2); }
.map-rings { inset: 2% 2.5%; }
.map-lines { inset: 2% 2.5%; width: 95%; height: 96%; }
.map-center { width: 178px; min-height: 178px; }
.map-legend { position: absolute; z-index: 8; top: 1rem; left: 1rem; width: min(235px, calc(100% - 2rem)); padding: .8rem .85rem .72rem; border: 1px solid rgba(184,137,59,.22); background: rgba(255,253,249,.94); box-shadow: 0 8px 18px rgba(20,44,69,.06); }
.map-legend span { font-size: .6rem; }
.legend-title { margin-bottom: .5rem; }
.legend-power-labels { display: grid; gap: .25rem; margin-top: .55rem; }
.legend-power-labels b { padding: .18rem .28rem; font-size: .5rem; }
.map-placeholder { min-height: 100%; }
.map-loading { min-height: 100%; color: transparent; }
.relation-line.relation-decision { stroke: rgba(12,39,64,.88); stroke-width: 2.5; }
.relation-line.relation-legislation { stroke: rgba(185,134,61,.84); stroke-width: 1.9; }
.relation-line.relation-implementation { stroke: rgba(20,141,120,.76); stroke-width: 1.55; }
.relation-line.relation-participation { stroke: rgba(74,85,120,.52); stroke-width: 1.2; stroke-dasharray: 5 6; }
.relation-line.relation-regulation,
.relation-line.relation-direction { stroke: rgba(185,134,61,.84); stroke-width: 1.9; }
.stakeholder-node strong { display: block; overflow: visible; max-width: 112px; line-height: 1.22; overflow-wrap: anywhere; }
.stakeholder-node .node-lineage { display: block; max-width: 112px; overflow: visible; white-space: normal; text-overflow: clip; overflow-wrap: anywhere; }
.topic-card { min-height: 0; }
.topic-card h2 { display: block; overflow: visible; max-width: none; -webkit-line-clamp: unset; }
.footer-inner { grid-template-columns: minmax(240px, 1.35fr) repeat(3, minmax(130px, .7fr)); }
.footer-links { gap: .48rem; }

@media (max-width: 1040px) {
  .area-hero-inner { width: min(100% - 64px, 1280px); }
  .stakeholder-map-stage, .stakeholder-map { min-height: 680px; height: 680px; }
}

@media (max-width: 780px) {
  .home-hero { background-image: linear-gradient(180deg, rgba(249,248,246,.96) 0%, rgba(249,248,246,.88) 52%, rgba(249,248,246,.46) 100%), url('/atlas/assets/atlas-institutional-hero.webp'); }
  .area-hero { padding: 1.5rem 0 1.35rem; background-image: radial-gradient(circle at 80% 48%, rgba(184,137,59,.055) 0 1px, transparent 1.5px), repeating-radial-gradient(ellipse at 80% 48%, transparent 0 86px, rgba(184,137,59,.04) 87px 88px, transparent 89px 178px); }
  .area-hero-inner { width: calc(100% - 32px); }
  .area-description { max-width: 340px; }
  .area-map-layout { margin-top: 1rem; }
  .stakeholder-map-stage, .stakeholder-map,
  .stakeholder-map-stage.map-dense, .stakeholder-map.map-dense { min-height: 720px; height: 720px; }
  .stakeholder-map { overflow: visible; }
  .map-legend { position: static; width: 100%; margin-top: .8rem; box-shadow: none; }
  .map-progressive-disclosure { top: calc(100% + .55rem); right: .55rem; bottom: auto; left: .55rem; width: auto; }
  .map-legend { margin-top: 4.25rem; }
  .map-center { width: 126px; min-height: 126px; }
  .stakeholder-map.map-dense .stakeholder-node { width: 86px; min-height: 66px; padding: .36rem .28rem; }
  .stakeholder-map.map-dense .stakeholder-node.size-large { width: 92px; min-height: 70px; }
  .stakeholder-map.map-dense .stakeholder-node.size-small { width: 82px; min-height: 62px; }
  .stakeholder-map.map-dense .stakeholder-node strong { max-width: 76px; font-size: .45rem; line-height: 1.2; -webkit-line-clamp: unset; }
  .stakeholder-map.map-dense .stakeholder-node small { font-size: .37rem; }
  .stakeholder-map.map-dense .stakeholder-node .node-lineage { max-width: 76px; font-size: .34rem; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-intro { grid-column: 1 / -1; }
}

@media (max-width: 390px) {
  .stakeholder-map-stage, .stakeholder-map,
  .stakeholder-map-stage.map-dense, .stakeholder-map.map-dense { min-height: 900px; height: 900px; }
}

/* V3.10 final map geometry: keep the collision-safe mobile coordinate space
   after the legacy responsive compatibility rules above. */
.map-rings {
  inset: 2% 2.5%;
  mask-image: none;
  background:
    radial-gradient(circle at center, transparent 0 18%, rgba(12,39,64,.42) 18.15% 18.35%, transparent 18.55% 35%, rgba(185,134,61,.28) 35.15% 35.34%, transparent 35.54% 52%, rgba(185,134,61,.22) 52.15% 52.34%, transparent 52.54% 70%, rgba(20,141,120,.18) 70.15% 70.34%, transparent 70.54% 100%),
    linear-gradient(90deg, transparent 49.92%, rgba(185,134,61,.08) 50%, transparent 50.08%),
    linear-gradient(0deg, transparent 49.92%, rgba(185,134,61,.08) 50%, transparent 50.08%);
}
.ring-label { z-index: 2; padding: .12rem .24rem; color: rgba(20,44,69,.58); background: rgba(255,253,249,.7); white-space: nowrap; }
.ring-decision { top: 34%; left: 5%; transform: none; color: rgba(12,39,64,.76); }
.ring-legislation { top: 17%; right: 5%; left: auto; transform: none; }
.ring-implementation { top: 7%; left: 7%; transform: none; }
.ring-participation { top: auto; right: 5%; bottom: 8%; left: auto; transform: none; color: rgba(20,141,120,.7); }

@media (max-width: 780px) {
  .stakeholder-map-stage, .stakeholder-map,
  .stakeholder-map-stage.map-dense, .stakeholder-map.map-dense { min-height: 900px !important; height: 900px !important; }
  .stakeholder-map { overflow: visible; }
  .ring-label { font-size: .38rem; }
  .ring-decision { top: 34%; left: 2%; }
  .ring-legislation { top: 17%; right: 2%; }
  .ring-implementation { top: 6%; left: 2%; }
  .ring-participation { right: 2%; bottom: 7%; }
}

/* V3.10 final cascade: the public map keeps its complete rings and gives the
   mobile collision pass enough vertical room for institutional identities. */
.stakeholder-map-stage, .stakeholder-map { min-height: 700px; height: 700px; }
.stakeholder-map { overflow: hidden; }
.map-rings {
  inset: 2% 2.5%;
  mask-image: none;
  background:
    radial-gradient(circle at center, transparent 0 21%, rgba(184,137,59,.18) 21.2% 21.45%, transparent 21.7% 42%, rgba(184,137,59,.16) 42.2% 42.45%, transparent 42.7% 63%, rgba(42,171,148,.15) 63.2% 63.45%, transparent 63.7% 84%, rgba(26,46,94,.12) 84.2% 84.45%, transparent 84.7% 100%),
    linear-gradient(90deg, transparent 49.94%, rgba(184,137,59,.08) 50%, transparent 50.06%),
    linear-gradient(0deg, transparent 49.94%, rgba(184,137,59,.08) 50%, transparent 50.06%);
}
.ring-label { z-index: 1; padding: .16rem .28rem; border: 1px solid rgba(184,137,59,.18); background: rgba(249,248,246,.82); font-size: .47rem; line-height: 1.25; white-space: nowrap; }
.ring-decision { top: 34%; left: 5%; transform: none; color: rgba(12,39,64,.76); }
.ring-legislation { top: 17%; right: 5%; left: auto; transform: none; }
.ring-implementation { top: 7%; left: 7%; transform: none; }
.ring-participation { top: auto; right: 5%; bottom: 8%; left: auto; transform: none; color: rgba(20,141,120,.76); }
.map-legend .legend-power-labels b { font-size: .5rem; letter-spacing: .02em; }
.cluster-preview .cluster-preview-action { margin-top: .15rem; color: var(--gold); font-size: .55rem; font-weight: 800; }
.detail-cluster-items { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 330px; gap: .4rem; }
.detail-cluster-item .territory-name { color: var(--ink); font-size: .62rem; font-weight: 800; }
.detail-cluster-item .territory-institution { color: var(--muted); font-size: .54rem; line-height: 1.35; }
.detail-cluster-item .territory-status { color: var(--teal); font-size: .51rem; font-weight: 800; }

@media (max-width: 780px) {
  .stakeholder-map-stage, .stakeholder-map,
  .stakeholder-map-stage.map-dense, .stakeholder-map.map-dense { min-height: 900px; height: 900px; }
  .stakeholder-map { overflow: visible; }
  .ring-label { font-size: .38rem; }
  .ring-decision { top: 34%; left: 2%; }
  .ring-legislation { top: 17%; right: 2%; }
  .ring-implementation { top: 6%; left: 2%; }
  .ring-participation { right: 2%; bottom: 7%; }
  .detail-cluster-items { grid-template-columns: 1fr 1fr; }
}

/* V3.8 final relation and identity pass. */
.relation-institution-line { stroke: rgba(12,39,64,.34); stroke-width: 1.25; }
.relation-institution-line.solid { stroke: rgba(12,39,64,.48); }
.relation-institution-line.dashed { stroke: rgba(185,134,61,.5); stroke-dasharray: 7 6; }
.relation-institution-line.is-highlight { stroke: var(--gold); stroke-width: 2.5; opacity: 1; }
.legend-toggle { display: inline-flex; align-items: center; gap: .35rem; padding: 0; border: 0; color: var(--ink); background: transparent; font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.legend-toggle span { display: inline; margin: 0; color: var(--gold); font-size: .82rem; }
.legend-content[hidden] { display: none; }
.legend-content { margin-top: .55rem; }
.institution-identity { width: 30px; height: 30px; min-width: 30px; font-size: .44rem; }
@media (max-width: 780px) { .institution-identity { width: 26px; height: 26px; min-width: 26px; } }

@media (max-width: 780px) {
  .stakeholder-map { overflow: visible; }
  .map-progressive-disclosure { top: calc(100% + .55rem); right: .55rem; bottom: auto; left: .55rem; width: auto; }
  .map-legend { margin-top: 4.25rem; }
}

/* V2.7 final cascade: the map hierarchy is encoded by four rings and
   relation semantics; identity marks replace the old generic node dot. */
.map-rings {
  inset: 3% 2%;
  background:
    radial-gradient(circle at center, transparent 0 18%, rgba(12,39,64,.42) 18.15% 18.35%, transparent 18.55% 35%, rgba(185,134,61,.28) 35.15% 35.34%, transparent 35.54% 52%, rgba(185,134,61,.22) 52.15% 52.34%, transparent 52.54% 70%, rgba(20,141,120,.18) 70.15% 70.34%, transparent 70.54% 100%),
    linear-gradient(90deg, transparent 49.92%, rgba(185,134,61,.08) 50%, transparent 50.08%),
    linear-gradient(0deg, transparent 49.92%, rgba(185,134,61,.08) 50%, transparent 50.08%);
  mask-image: radial-gradient(ellipse at center, #000 0 80%, transparent 96%);
}
.ring-label { position: absolute; color: rgba(20,44,69,.52); font-size: .48rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.ring-decision { top: 30%; left: 50%; color: rgba(12,39,64,.72); transform: translateX(-50%); }
.ring-legislation { top: 21%; left: 50%; transform: translateX(-50%); }
.ring-implementation { top: 12%; left: 50%; transform: translateX(-50%); }
.ring-participation { top: 3%; left: 50%; color: rgba(20,141,120,.62); transform: translateX(-50%); }
.relation-line { transition: opacity .18s, stroke-width .18s; }
.relation-line.relation-decision { stroke: rgba(12,39,64,.86); stroke-width: 2.5; }
.relation-line.relation-direction { stroke: rgba(185,134,61,.88); stroke-width: 2.1; }
.relation-line.relation-legislation { stroke: rgba(77,127,171,.82); stroke-width: 1.8; }
.relation-line.relation-regulation { stroke: rgba(77,137,194,.78); stroke-width: 1.55; stroke-dasharray: 2 4; }
.relation-line.relation-implementation { stroke: rgba(20,141,120,.72); stroke-width: 1.35; }
.relation-line.relation-participation { stroke: rgba(118,126,128,.62); stroke-width: 1.15; stroke-dasharray: 5 6; }
.relation-line.is-highlight { opacity: 1; stroke-width: 3; }
.stakeholder-node.is-dimmed { opacity: .24; }
.stakeholder-node.is-highlight { opacity: 1; border-color: var(--gold); box-shadow: 0 0 0 4px rgba(185,134,61,.16), 0 11px 24px rgba(20,44,69,.14); }
.institution-identity { display: grid; width: 25px; height: 25px; min-width: 25px; place-items: center; margin-bottom: .32rem; overflow: hidden; border: 1px solid rgba(185,134,61,.56); border-radius: 50%; color: var(--navy); background: rgba(247,244,238,.94); font-size: .43rem; font-weight: 900; letter-spacing: -.02em; line-height: 1; }
.identity-territory { color: var(--teal); border-color: rgba(20,141,120,.5); }
.identity-parliament { color: #4d7fab; border-color: rgba(77,127,171,.5); }
.identity-eu, .identity-eu-commission, .identity-eu-agency, .identity-eu-parliament, .identity-eu-council { color: #315d9c; border-color: rgba(49,93,156,.42); }
.identity-logo { object-fit: contain; padding: .22rem; }
.stakeholder-node .node-activity { color: var(--gold); }
.map-hover-detail { position: absolute; z-index: 8; top: .85rem; right: .85rem; display: grid; max-width: 230px; gap: .2rem; padding: .58rem .68rem; border-left: 2px solid var(--gold); background: rgba(255,253,249,.93); box-shadow: 0 8px 18px rgba(20,44,69,.08); font-size: .58rem; line-height: 1.35; }
.map-hover-detail strong { color: var(--ink); font-size: .64rem; }
.map-hover-detail span { color: var(--gold); }
.map-hover-detail small { color: var(--muted); font-size: .53rem; }
.agenda-note { display: none; }
.map-progressive-disclosure { position: absolute; z-index: 7; right: 1rem; bottom: 1rem; width: min(330px, calc(100% - 2rem)); padding: .7rem .8rem; border: 1px solid var(--line); background: rgba(255,253,249,.94); box-shadow: 0 8px 18px rgba(20,44,69,.07); }
.map-progressive-disclosure .eyebrow { margin: 0 0 .35rem; font-size: .5rem; }
.map-expansion-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: .7rem; padding: 0; border: 0; color: var(--navy); background: transparent; font: inherit; font-size: .64rem; font-weight: 800; text-align: left; cursor: pointer; }
.map-expansion-toggle span { color: var(--gold); font-size: 1.1rem; }
.map-expansion-list { display: grid; max-height: 230px; gap: .25rem; overflow: auto; padding-top: .55rem; margin-top: .55rem; border-top: 1px solid var(--line); }
.map-expansion-list[hidden] { display: none; }
.map-expansion-item { display: grid; gap: .12rem; padding: .45rem .5rem; border: 1px solid transparent; color: var(--ink); background: rgba(255,255,255,.55); text-align: left; cursor: pointer; }
.map-expansion-item:hover, .map-expansion-item:focus-visible { border-color: rgba(185,134,61,.5); outline: none; }
.map-expansion-item strong { font-size: .62rem; line-height: 1.25; }
.map-expansion-item span { color: var(--muted); font-size: .52rem; line-height: 1.3; }
@media (max-width: 780px) {
  .ring-label { font-size: .4rem; letter-spacing: .08em; }
  .map-hover-detail { top: .55rem; right: .55rem; max-width: 180px; }
  .institution-identity { width: 21px; height: 21px; min-width: 21px; font-size: .38rem; }
  .map-progressive-disclosure { right: .55rem; bottom: .55rem; width: calc(100% - 1.1rem); }
  .map-expansion-list { max-height: 260px; }
}

/* V3.6 final cascade: keep launch-specific geometry after the historical
   Atlas compatibility layers above. */
.skip-link:focus { top: -4rem; }
.skip-link:focus-visible { top: 1rem; }
.site-header { z-index: 50; }
.home-hero { background-image: linear-gradient(90deg, rgba(249,248,246,1) 0%, rgba(249,248,246,.98) 38%, rgba(249,248,246,.64) 66%, rgba(249,248,246,.08) 100%), url('/atlas/assets/atlas-institutional-hero.webp'); }
.area-hero { min-height: 0; padding: 1.8rem 0 2.25rem; background-image: radial-gradient(circle at 76% 44%, rgba(184,137,59,.055) 0 1px, transparent 1.5px), repeating-radial-gradient(ellipse at 76% 44%, transparent 0 118px, rgba(184,137,59,.045) 119px 120px, transparent 121px 238px); }
.area-hero-inner { display: block; width: min(1280px, calc(100% - 104px)); }
.area-copy { padding-top: 0; }
.area-hero .breadcrumb { margin-bottom: 1.15rem; }
.area-hero h1 { max-width: none; margin-bottom: .35rem; font-size: clamp(2.8rem, 4.4vw, 4.35rem); }
.area-description { max-width: 650px; margin-bottom: 0; font-size: .88rem; }
.area-map-layout { position: relative; margin-top: 1.5rem; }
.stakeholder-map-stage { min-height: 700px; height: 700px; overflow: visible; }
.stakeholder-map { min-height: 700px; height: 700px; overflow: hidden; border: 1px solid rgba(184,137,59,.17); background: rgba(255,255,255,.2); }
.map-rings { inset: 2% 2.5%; }
.map-lines { inset: 2% 2.5%; width: 95%; height: 96%; }
.map-center { width: 178px; min-height: 178px; }
.map-legend { position: absolute; z-index: 8; top: 1rem; left: 1rem; width: min(235px, calc(100% - 2rem)); padding: .8rem .85rem .72rem; border: 1px solid rgba(184,137,59,.22); background: rgba(255,253,249,.94); box-shadow: 0 8px 18px rgba(20,44,69,.06); }
.map-legend span { font-size: .6rem; }
.legend-title { margin-bottom: .5rem; }
.legend-power-labels { display: grid; gap: .25rem; margin-top: .55rem; }
.legend-power-labels b { padding: .18rem .28rem; font-size: .5rem; }
.map-placeholder { min-height: 100%; }
.map-loading { min-height: 100%; color: transparent; }
.relation-line.relation-decision { stroke: rgba(12,39,64,.88); stroke-width: 2.5; }
.relation-line.relation-legislation,
.relation-line.relation-regulation,
.relation-line.relation-direction { stroke: rgba(185,134,61,.84); stroke-width: 1.9; stroke-dasharray: none; }
.relation-line.relation-implementation { stroke: rgba(20,141,120,.76); stroke-width: 1.55; }
.relation-line.relation-participation { stroke: rgba(74,85,120,.52); stroke-width: 1.2; stroke-dasharray: 5 6; }
.stakeholder-node strong { display: block; overflow: visible; max-width: 112px; line-height: 1.22; overflow-wrap: anywhere; -webkit-line-clamp: unset; }
.stakeholder-node .node-lineage { display: block; max-width: 112px; overflow: visible; white-space: normal; text-overflow: clip; overflow-wrap: anywhere; }
.topic-card { min-height: 0; }
.topic-card h2 { display: block; overflow: visible; max-width: none; -webkit-line-clamp: unset; }
.footer-inner { grid-template-columns: minmax(240px, 1.35fr) repeat(3, minmax(130px, .7fr)); }
.footer-links { gap: .48rem; }

@media (max-width: 1040px) {
  .area-hero-inner { width: min(100% - 64px, 1280px); }
  .stakeholder-map-stage, .stakeholder-map { min-height: 680px; height: 680px; }
}

@media (max-width: 780px) {
  .home-hero { background-image: linear-gradient(180deg, rgba(249,248,246,.96) 0%, rgba(249,248,246,.88) 52%, rgba(249,248,246,.46) 100%), url('/atlas/assets/atlas-institutional-hero.webp'); }
  .area-hero { padding: 1.5rem 0 1.35rem; background-image: radial-gradient(circle at 80% 48%, rgba(184,137,59,.055) 0 1px, transparent 1.5px), repeating-radial-gradient(ellipse at 80% 48%, transparent 0 86px, rgba(184,137,59,.04) 87px 88px, transparent 89px 178px); }
  .area-hero-inner { width: calc(100% - 32px); }
  .area-description { max-width: 340px; }
  .area-map-layout { margin-top: 1rem; }
  .stakeholder-map-stage, .stakeholder-map,
  .stakeholder-map-stage.map-dense, .stakeholder-map.map-dense { min-height: 720px; height: 720px; }
  .stakeholder-map { overflow: visible; }
  .map-legend { position: static; width: 100%; margin-top: .8rem; box-shadow: none; }
  .map-progressive-disclosure { top: calc(100% + .55rem); right: .55rem; bottom: auto; left: .55rem; width: auto; }
  .map-legend { margin-top: 4.25rem; }
  .map-center { width: 126px; min-height: 126px; }
  .stakeholder-map.map-dense .stakeholder-node { width: 86px; min-height: 66px; padding: .36rem .28rem; }
  .stakeholder-map.map-dense .stakeholder-node.size-large { width: 92px; min-height: 70px; }
  .stakeholder-map.map-dense .stakeholder-node.size-small { width: 82px; min-height: 62px; }
  .stakeholder-map.map-dense .stakeholder-node strong { max-width: 76px; font-size: .45rem; line-height: 1.2; -webkit-line-clamp: unset; }
  .stakeholder-map.map-dense .stakeholder-node small { font-size: .37rem; }
  .stakeholder-map.map-dense .stakeholder-node .node-lineage { max-width: 76px; font-size: .34rem; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-intro { grid-column: 1 / -1; }
}

@media (max-width: 390px) {
  .stakeholder-map-stage, .stakeholder-map,
  .stakeholder-map-stage.map-dense, .stakeholder-map.map-dense { min-height: 700px; height: 700px; }
}

/* V3.11 — approved Area map composition. These selectors deliberately use
   the v311 representation namespace so the historical map geometry is no
   longer part of the rendered surface. */
.area-hero-inner { display: grid; grid-template-columns: minmax(230px, 280px) minmax(0, 1fr); align-items: start; gap: 2.1rem; min-height: 0; }
.area-hero { background-image: radial-gradient(circle at 78% 28%, rgba(184,137,59,.035) 0 1px, transparent 1.5px); }
.area-copy { min-width: 0; }
.area-map-layout { position: relative; min-width: 0; margin-top: 0; }
.area-map-layout .stakeholder-map-stage { margin: 0; }
.area-copy .map-legend { position: relative; top: auto; right: auto; bottom: auto; left: auto; width: 222px; margin-top: 1.7rem; padding: 0; border: 0; background: transparent; box-shadow: none; }
.area-copy .legend-toggle { display: inline-flex; width: 100%; min-height: 47px; align-items: center; justify-content: space-between; padding: .72rem .82rem; border: 1px solid rgba(184,137,59,.28); color: var(--ink); background: rgba(255,255,255,.72); box-shadow: 0 7px 18px rgba(20,44,69,.05); font-size: .62rem; letter-spacing: .01em; text-transform: none; }
.area-copy .legend-toggle::before { content: '⌘'; display: grid; width: 21px; height: 21px; place-items: center; margin-right: .42rem; border: 1px solid rgba(184,137,59,.42); border-radius: 50%; color: var(--gold); font-size: .74rem; }
.area-copy .legend-toggle span { margin-left: auto; color: var(--gold); font-size: .9rem; }
.area-copy .legend-content { position: relative; display: grid; gap: .48rem; margin-top: .55rem; padding: .75rem .8rem; border: 1px solid var(--line); background: rgba(255,255,255,.82); }
.area-copy .legend-content[hidden] { display: none; }
.area-copy .legend-content > span { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: .42rem; align-items: center; margin: 0; color: var(--ink-soft); font-size: .59rem; line-height: 1.3; }
.area-copy .legend-content .legend-power-labels { display: grid; gap: .28rem; margin-top: .2rem; }
.area-copy .legend-content .legend-power-labels b { padding: .22rem .3rem; border-color: rgba(184,137,59,.24); font-size: .5rem; }
.stakeholder-map-stage { min-height: 620px; height: 620px; overflow: visible; }
.stakeholder-map-stage.map-dense { min-height: 620px; height: 620px; }
.stakeholder-map-v311 { position: relative; width: 100%; height: 100%; min-height: 0; overflow: visible; border: 0; background: radial-gradient(circle at 50% 52%, rgba(255,255,255,.52) 0 23%, transparent 23.4%), radial-gradient(circle at 50% 52%, transparent 0 62%, rgba(184,137,59,.028) 62.2% 62.5%, transparent 62.8%); }
.map-graphic { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.map-ring { fill: none; stroke-width: 1.35; vector-effect: non-scaling-stroke; }
.map-ring.ring-decision { stroke: rgba(54,106,184,.62); }
.map-ring.ring-legislation { stroke: rgba(184,137,59,.62); }
.map-ring.ring-implementation { stroke: rgba(42,171,148,.54); }
.map-ring.ring-participation { stroke: rgba(42,171,148,.3); }
.map-ring-label { fill: rgba(20,44,69,.7); font-family: var(--sans); font-size: 12px; font-weight: 800; letter-spacing: 1px; }
.map-ring-label.label-legislation { fill: rgba(158,111,42,.85); }
.map-ring-label.label-implementation, .map-ring-label.label-participation { fill: rgba(17,133,114,.78); }
.map-relations .relation-line { fill: none; stroke-width: 1.35; vector-effect: non-scaling-stroke; opacity: .58; transition: opacity .16s, stroke-width .16s; }
.map-relations .relation-area-line { stroke-width: 1.7; opacity: .75; }
.map-relations .relation-decision { stroke: rgba(12,39,64,.9); }
.map-relations .relation-legislation { stroke: rgba(184,137,59,.82); }
.map-relations .relation-implementation { stroke: rgba(20,141,120,.78); }
.map-relations .relation-participation { stroke: rgba(91,116,136,.56); stroke-dasharray: 5 6; }
.map-relations .relation-institution-line { stroke: rgba(79,102,123,.42); stroke-dasharray: 3 5; }
.map-relations .relation-institution-line.solid { stroke: rgba(79,102,123,.52); stroke-dasharray: none; }
.map-relations .relation-line.is-dimmed { opacity: .12; }
.map-relations .relation-line.is-highlight { opacity: 1; stroke-width: 2.7; }
.map-center-v311 { top: 52%; left: 50%; width: 148px; min-height: 148px; aspect-ratio: 1; padding: 1rem; border: 0; border-radius: 50%; color: var(--white); background: var(--navy-deep); box-shadow: 0 10px 22px rgba(17,31,66,.14); }
.map-center-v311::after { content: ''; position: absolute; inset: -7px; border: 1px solid rgba(184,137,59,.26); border-radius: 50%; }
.map-center-v311 span { margin-bottom: .3rem; color: rgba(255,255,255,.74); font-size: .53rem; letter-spacing: .16em; }
.map-center-v311 strong { max-width: 120px; font-family: var(--serif); font-size: 1.48rem; font-weight: 400; line-height: 1.08; }
.stakeholder-node-v311 { z-index: 3; width: 104px; min-height: 104px; aspect-ratio: 1; padding: .7rem .5rem .56rem; border: 1px solid rgba(20,44,69,.2); border-radius: 50%; background: rgba(255,255,255,.93); box-shadow: 0 5px 13px rgba(20,44,69,.06); transition: transform .16s ease, opacity .16s ease, border-color .16s ease, box-shadow .16s ease; }
.stakeholder-node-v311 strong { display: -webkit-box; max-width: 91px; overflow: hidden; color: var(--ink); font-size: .62rem; line-height: 1.18; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.stakeholder-node-v311 small { max-width: 92px; margin-top: .28rem; color: var(--muted); font-size: .48rem; font-weight: 800; letter-spacing: .06em; line-height: 1.18; text-transform: uppercase; }
.stakeholder-node-v311.power-decision { border: 2px solid rgba(28,81,143,.58); }
.stakeholder-node-v311.power-legislation { border-color: rgba(184,137,59,.65); }
.stakeholder-node-v311.power-implementation { border-color: rgba(42,171,148,.58); }
.stakeholder-node-v311.power-participation { border-color: rgba(88,126,145,.34); }
.stakeholder-node-v311.cluster-node { width: 112px; min-height: 112px; border: 2px solid rgba(42,171,148,.72); background: rgba(248,253,251,.96); }
.stakeholder-node-v311.is-active::after { content: ''; position: absolute; inset: -5px; border: 1px solid rgba(184,137,59,.58); border-radius: 50%; }
.stakeholder-node-v311.is-highlight, .stakeholder-node-v311[aria-expanded="true"] { z-index: 6; border-color: var(--gold); box-shadow: 0 0 0 5px rgba(184,137,59,.14), 0 10px 22px rgba(20,44,69,.12); transform: translate(-50%, -50%) scale(1.045); }
.stakeholder-node-v311.is-dimmed { opacity: .24; }
.map-node-identity { display: grid; width: 35px; height: 35px; min-width: 35px; place-items: center; margin-bottom: .3rem; overflow: hidden; border: 1px solid rgba(184,137,59,.4); border-radius: 50%; color: var(--navy); background: rgba(247,244,238,.9); font-size: .45rem; font-weight: 900; line-height: 1; }
.map-node-identity.identity-territory { color: var(--teal); border-color: rgba(42,171,148,.5); }
.map-node-identity.identity-parliament, .map-node-identity.identity-eu, .map-node-identity.identity-eu-agency, .map-node-identity.identity-eu-commission { color: #376b9e; border-color: rgba(55,107,158,.44); }
.map-node-identity.identity-logo { object-fit: contain; padding: .22rem; }
.node-badge { position: absolute; top: 9px; right: 12px; display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; color: var(--white); background: var(--teal); font-size: .52rem; font-weight: 900; }
.node-activity-dot { width: 6px; height: 6px; margin-top: .26rem; border: 1px solid var(--paper); border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 2px rgba(184,137,59,.18); }
.map-hover-detail-v311 { position: absolute; z-index: 8; display: grid; gap: .35rem; min-height: 0; padding: .82rem .9rem; border: 1px solid rgba(184,137,59,.28); border-left: 2px solid var(--gold); border-radius: 2px; background: rgba(255,253,249,.97); box-shadow: 0 12px 24px rgba(20,44,69,.11); color: var(--ink); pointer-events: none; font-size: .62rem; line-height: 1.42; }
.map-hover-detail-v311 .popover-heading { display: flex; align-items: center; gap: .5rem; }
.map-hover-detail-v311 .popover-heading img, .map-hover-detail-v311 .popover-mark { display: grid; width: 28px; height: 28px; place-items: center; flex: 0 0 28px; border-radius: 50%; color: var(--navy); background: var(--paper); object-fit: contain; }
.map-hover-detail-v311 .popover-mark { border: 1px solid rgba(184,137,59,.4); font-size: .54rem; font-weight: 900; }
.map-hover-detail-v311 strong { font-size: .7rem; line-height: 1.2; }
.map-hover-detail-v311 b { color: var(--gold); font-size: .57rem; letter-spacing: .08em; text-transform: uppercase; }
.map-hover-detail-v311 p { margin: 0; color: var(--ink-soft); }
.map-hover-detail-v311 small { color: var(--teal); font-weight: 800; }
.map-secondary-disclosure { position: absolute; z-index: 4; right: .5rem; bottom: .2rem; width: min(300px, 45%); }
.map-secondary-disclosure .map-expansion-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: .6rem; padding: .48rem .58rem; border: 1px solid rgba(184,137,59,.22); color: var(--ink-soft); background: rgba(255,253,249,.84); font-size: .57rem; font-weight: 800; text-align: left; cursor: pointer; }
.map-secondary-disclosure .map-expansion-toggle span { color: var(--gold); font-size: .9rem; }
.map-secondary-disclosure .map-expansion-list { display: grid; max-height: 210px; gap: .25rem; overflow: auto; padding: .45rem; border: 1px solid var(--line); border-top: 0; background: rgba(255,253,249,.98); }
.map-secondary-disclosure .map-expansion-list[hidden] { display: none; }
.map-secondary-disclosure .map-expansion-item { display: grid; gap: .12rem; padding: .35rem .4rem; border: 1px solid transparent; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.map-secondary-disclosure .map-expansion-item:hover, .map-secondary-disclosure .map-expansion-item:focus-visible { border-color: rgba(184,137,59,.38); outline: 0; }
.map-secondary-disclosure .map-expansion-item strong { font-size: .6rem; }
.map-secondary-disclosure .map-expansion-item span { color: var(--muted); font-size: .52rem; }
.stakeholder-detail-v311 { position: fixed; z-index: 80; top: 66px; right: 0; bottom: 0; width: min(420px, 36vw); max-height: none; overflow-y: auto; padding: 2rem 1.8rem 2.2rem; border: 0; border-left: 1px solid var(--line); background: rgba(255,253,249,.98); box-shadow: -14px 0 34px rgba(20,44,69,.1); opacity: 0; transform: translateX(22px); transition: opacity .18s ease, transform .18s ease; }
.stakeholder-detail-v311.is-open { opacity: 1; transform: translateX(0); }
.stakeholder-detail-v311 .detail-close { top: 1.05rem; right: 1.15rem; font-size: 1.5rem; }
.detail-identity { display: grid; width: 52px; height: 52px; place-items: center; margin-bottom: .75rem; border: 1px solid rgba(184,137,59,.35); border-radius: 50%; color: var(--navy); background: var(--paper); font-size: .7rem; font-weight: 900; }
.detail-identity img { width: 38px; height: 38px; object-fit: contain; }
.stakeholder-detail-v311 .detail-kicker { margin-bottom: .55rem; }
.stakeholder-detail-v311 h2 { max-width: 340px; margin-bottom: .35rem; font-family: var(--serif); font-size: 1.75rem; font-weight: 400; line-height: 1.12; }
.stakeholder-detail-v311 .detail-layer { margin: 0 0 1.25rem; color: var(--gold); font-size: .57rem; letter-spacing: .1em; }
.stakeholder-detail-v311 .detail-role, .stakeholder-detail-v311 .detail-evidence { margin: 0; color: var(--ink-soft); font-size: .7rem; line-height: 1.55; }
.stakeholder-detail-v311 .detail-divider { margin: 1.05rem 0; }
.stakeholder-detail-v311 .detail-section-label { margin: 0 0 .38rem; color: var(--gold); font-size: .56rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.stakeholder-detail-v311 .detail-role section, .stakeholder-detail-v311 .detail-evidence section { margin-bottom: 1.05rem; }
.stakeholder-detail-v311 .detail-role p:not(.detail-section-label), .stakeholder-detail-v311 .detail-source-note { margin: 0; }
.detail-bullet-list, .detail-agenda-list { display: grid; gap: .52rem; padding: 0; margin: 0; list-style: none; }
.detail-bullet-list li, .detail-agenda-list li { position: relative; padding-left: 1rem; }
.detail-bullet-list li::before, .detail-agenda-list li::before { content: ''; position: absolute; top: .48rem; left: 0; width: 5px; height: 5px; border: 1px solid var(--gold); border-radius: 50%; }
.detail-source-note { padding-top: .55rem; color: var(--muted); font-size: .64rem; }
.detail-cluster-list { margin-top: .5rem; }
.cluster-intro { margin: 0 0 .65rem; color: var(--muted); font-size: .64rem; line-height: 1.45; }
.stakeholder-detail-v311 .detail-cluster-items { display: grid; grid-template-columns: 1fr; gap: .25rem; max-height: none; overflow: visible; }
.detail-cluster-item { position: relative; display: grid; gap: .1rem; padding: .68rem 1.5rem .68rem .1rem; border: 0; border-top: 1px solid var(--line); color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.detail-cluster-item:hover, .detail-cluster-item:focus-visible { border-color: var(--line); background: rgba(255,255,255,.5); outline: 0; }
.detail-cluster-item.is-territory-hidden { display: none; }
.detail-cluster-item .territory-name { font-size: .68rem; }
.detail-cluster-item .territory-institution { color: var(--muted); font-size: .57rem; }
.detail-cluster-item .territory-secondary { color: var(--ink-soft); font-size: .53rem; line-height: 1.35; }
.detail-cluster-item .territory-secondary span { color: var(--muted); font-weight: 800; }
.detail-cluster-item .territory-status { color: var(--teal); font-size: .52rem; font-weight: 800; }
.territory-chevron { position: absolute; top: 50%; right: .25rem; color: var(--muted); font-size: 1rem; transform: translateY(-50%); }
.territory-more { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: .78rem .1rem 0; border: 0; color: var(--gold); background: transparent; font-size: .62rem; font-weight: 800; cursor: pointer; }
.detail-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.detail-actions .detail-link { font-size: .63rem; }
.detail-cluster-item-main { position: relative; display: grid; width: 100%; gap: .1rem; padding: .68rem 1.5rem .18rem .1rem; border: 0; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.detail-cluster-item-main:hover, .detail-cluster-item-main:focus-visible { outline: 0; background: rgba(255,255,255,.5); }
.detail-cluster-item:has(.detail-cluster-item-main) { padding: 0; border-top: 1px solid var(--line); }
.detail-cluster-item .territory-responsible { color: var(--ink-soft); font-size: .53rem; line-height: 1.35; }
.territory-source { display: inline-block; padding: .1rem .1rem .55rem; color: var(--gold); font-size: .54rem; font-weight: 800; text-decoration: none; }
.territory-source:hover, .territory-source:focus-visible { color: var(--navy); text-decoration: underline; }
.map-placeholder, .map-loading { min-height: 100%; }

@media (max-width: 1040px) and (min-width: 781px) {
  .area-hero-inner { grid-template-columns: minmax(200px, 235px) minmax(0, 1fr); gap: 1.2rem; }
  .stakeholder-map-stage { height: 600px; min-height: 600px; }
  .stakeholder-node-v311 { width: 102px; min-height: 102px; }
  .map-center-v311 { width: 136px; min-height: 136px; }
}

@media (max-width: 780px) {
  .area-hero-inner { display: block; width: calc(100% - 32px); }
  .area-copy .map-legend { width: min(100%, 292px); margin-top: 1.25rem; }
  .area-map-layout { margin-top: .75rem; }
  .stakeholder-map-stage { height: 610px !important; min-height: 610px !important; margin: 0; }
  .stakeholder-map-stage.map-dense { height: 610px; min-height: 610px; }
  .stakeholder-map-v311 { min-height: 0; }
  .stakeholder-map-v311 { height: 100% !important; min-height: 0 !important; }
  .map-ring-label { font-size: 11px; letter-spacing: .7px; }
  .map-center-v311 { width: 112px; min-height: 112px; }
  .map-center-v311 strong { max-width: 92px; font-size: 1.12rem; }
  .stakeholder-node-v311 { width: 82px; min-height: 82px; padding: .48rem .3rem .38rem; }
  .stakeholder-node-v311.cluster-node { width: 92px; min-height: 92px; }
  .stakeholder-node-v311 strong { max-width: 69px; font-size: .5rem; line-height: 1.14; }
  .stakeholder-node-v311 small { max-width: 72px; margin-top: .18rem; font-size: .37rem; letter-spacing: .03em; }
  .map-node-identity { width: 26px; height: 26px; min-width: 26px; margin-bottom: .2rem; font-size: .35rem; }
  .node-badge { top: 5px; right: 7px; width: 17px; height: 17px; font-size: .43rem; }
  .map-hover-detail-v311 { display: none !important; }
  .map-secondary-disclosure { right: .1rem; bottom: .15rem; width: min(270px, 78%); }
  .stakeholder-detail-v311 { top: auto; right: 0; bottom: 0; left: 0; width: 100%; max-height: 88vh; padding: 1.35rem 1.2rem 1.6rem; border-top: 1px solid var(--line); border-left: 0; box-shadow: 0 -14px 34px rgba(20,44,69,.13); transform: translateY(22px); }
  .stakeholder-detail-v311 h2 { max-width: calc(100% - 2rem); font-size: 1.48rem; }
  .stakeholder-detail-v311 .detail-actions { padding-bottom: .3rem; }
}

@media (max-width: 390px) {
  .stakeholder-map-stage { height: 580px !important; min-height: 580px !important; }
  .stakeholder-map-stage.map-dense { height: 580px; min-height: 580px; }
  .map-ring-label { font-size: 9px; }
  .stakeholder-node-v311 { width: 76px; min-height: 76px; }
  .stakeholder-node-v311.cluster-node { width: 84px; min-height: 84px; }
  .stakeholder-node-v311 strong { max-width: 64px; font-size: .47rem; }
}

/* V3.12 visual recovery: the graph owns a square coordinate system. The
   copy sits above the composition and can no longer push its center aside. */
.area-hero-inner { display: block; width: min(1280px, calc(100% - 104px)); }
.area-copy { max-width: 560px; }
.area-map-layout { position: relative; margin-top: .8rem; }
.area-map-layout > .map-legend { position: absolute; z-index: 10; top: 1rem; left: 1rem; width: 222px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.stakeholder-map-stage { width: min(900px, 100%); height: auto; aspect-ratio: 1; min-height: 0; margin: 0 auto !important; overflow: hidden; }
.stakeholder-map-v311 { overflow: hidden; background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.62) 0 14%, transparent 14.4%), radial-gradient(circle at 50% 50%, rgba(184,137,59,.045) 0 43%, transparent 43.3%), #fbfaf7; }
.map-graphic { overflow: visible; }
.map-rings-v311 .map-ring { position: static; inset: auto; transform: none !important; stroke-width: 1.4; }
.map-ring-label-group rect { fill: rgba(251,250,247,.96); stroke: rgba(184,137,59,.14); }
.map-ring-label { fill: rgba(20,44,69,.82); font-size: 12px; font-weight: 800; letter-spacing: 1.1px; }
.map-ring-label-group.label-legislation .map-ring-label { fill: rgba(158,111,42,.92); }
.map-ring-label-group.label-implementation .map-ring-label, .map-ring-label-group.label-participation .map-ring-label { fill: rgba(17,133,114,.86); }
.map-relations-v311 .relation-line { fill: none; stroke-width: 1.45; vector-effect: non-scaling-stroke; opacity: .56; transition: opacity .16s, stroke-width .16s; }
.map-relations-v311 .relation-area-line { stroke-width: 1.7; opacity: .72; }
.map-relations-v311 .relation-decision { stroke: rgba(12,39,64,.9); }
.map-relations-v311 .relation-legislation { stroke: rgba(184,137,59,.84); }
.map-relations-v311 .relation-implementation { stroke: rgba(20,141,120,.8); }
.map-relations-v311 .relation-participation { stroke: rgba(91,116,136,.6); stroke-dasharray: 5 6; }
.map-relations-v311 .relation-institution-line { stroke: rgba(79,102,123,.38); stroke-dasharray: 3 5; }
.map-relations-v311 .relation-institution-line.solid { stroke: rgba(79,102,123,.52); stroke-dasharray: none; }
.map-relations-v311 .relation-line.is-dimmed { opacity: .1; }
.map-relations-v311 .relation-line.is-highlight { opacity: 1; stroke-width: 2.8; }
.map-center-v311 { top: 50%; left: 50%; width: 148px; min-height: 148px; }
.stakeholder-node-v311 { width: 104px; min-height: 104px; }
.stakeholder-node-v311.cluster-node { width: 112px; min-height: 112px; }
.map-node-identity { width: 40px; height: 32px; min-width: 40px; border-radius: 7px; font-size: .46rem; }
.map-node-identity.identity-logo { padding: .18rem; }
.map-node-identity.identity-family { display: flex; flex-direction: column; justify-content: center; gap: .16rem; color: var(--navy); background: rgba(247,244,238,.96); }
.map-node-identity.identity-family b { font-size: .58rem; line-height: 1; }
.map-node-identity.identity-family small { color: var(--muted); font-size: .35rem; font-weight: 800; letter-spacing: .04em; line-height: 1; }
.map-node-identity.identity-family.identity-eu, .map-node-identity.identity-family.identity-eu-agency, .map-node-identity.identity-family.identity-eu-commission { color: #245c91; border-color: rgba(55,107,158,.48); }
.map-node-identity.identity-family.identity-parliament { color: #244d89; border-color: rgba(55,107,158,.48); }
.map-node-identity.identity-family.identity-territory { color: var(--teal); border-color: rgba(42,171,148,.56); }
.map-hover-detail-v311 { border-left-width: 2px; }

@media (max-width: 1040px) and (min-width: 781px) {
  .area-hero-inner { width: min(100% - 64px, 1280px); }
  .stakeholder-map-stage { width: min(860px, 100%); }
}

@media (max-width: 780px) {
  .area-hero-inner { display: block; width: calc(100% - 32px); }
  .area-copy { max-width: none; }
  .area-map-layout { margin-top: 1rem; }
  .area-map-layout > .map-legend { top: .6rem; left: .6rem; width: 188px; }
  .stakeholder-map-stage { width: 100%; height: auto !important; min-height: 0 !important; aspect-ratio: 1; margin: 0; }
  .stakeholder-map-v311 { height: 100%; min-height: 0; }
  .map-ring-label { font-size: 10px; letter-spacing: .65px; }
  .map-ring-label-group rect { opacity: .98; }
  .map-center-v311 { width: 84px; min-height: 84px; padding: .55rem; }
  .map-center-v311 span { font-size: .42rem; }
  .map-center-v311 strong { max-width: 72px; font-size: .98rem; }
  .stakeholder-node-v311 { width: 68px; min-height: 68px; padding: .35rem .22rem .28rem; }
  .stakeholder-node-v311.cluster-node { width: 74px; min-height: 74px; }
  .stakeholder-node-v311 strong { max-width: 58px; font-size: .43rem; line-height: 1.12; }
  .stakeholder-node-v311 small { max-width: 60px; margin-top: .15rem; font-size: .31rem; letter-spacing: .02em; }
  .map-node-identity { width: 24px; height: 22px; min-width: 24px; margin-bottom: .16rem; font-size: .3rem; }
  .map-node-identity.identity-family b { font-size: .43rem; }
  .map-node-identity.identity-family small { font-size: .27rem; }
  .node-badge { top: 3px; right: 5px; width: 15px; height: 15px; font-size: .38rem; }
  .map-secondary-disclosure { right: .35rem; bottom: .35rem; width: min(250px, 76%); }
  .map-hover-detail-v311 { display: none !important; }
}

/* V3.21 human pass: keep the complete area hierarchy in the desktop first
   viewport without changing the four-ring map model or mobile composition. */
@media (min-width: 1041px) {
  .stakeholder-map-stage { width: min(860px, 100%); }
}

@media (max-width: 390px) {
  .map-ring-label { font-size: 9px; }
  .stakeholder-node-v311 { width: 64px; min-height: 64px; }
  .stakeholder-node-v311.cluster-node { width: 70px; min-height: 70px; }
}

/* V3.13 fidelity pass: institutional nodes are marks in a composed map, not
   cards inside circles.  Keep the V3.12 coordinate contract and refine only
   the visual treatment around it. */
.stakeholder-map-v311 .map-ring { stroke-width: 1.05; }
.stakeholder-map-v311 .map-ring.ring-decision { stroke: rgba(54,106,184,.48); }
.stakeholder-map-v311 .map-ring.ring-legislation { stroke: rgba(184,137,59,.48); }
.stakeholder-map-v311 .map-ring.ring-implementation { stroke: rgba(42,171,148,.42); }
.stakeholder-map-v311 .map-ring.ring-participation { stroke: rgba(42,171,148,.22); }
.stakeholder-map-v311 .map-ring-label-group rect { fill: rgba(251,250,247,.86); stroke: none; }
.stakeholder-map-v311 .map-ring-label { font-size: 11px; font-weight: 800; letter-spacing: 1.2px; }
.stakeholder-map-v311 .map-relations-v311 .relation-line { opacity: .46; stroke-width: 1.2; }
.stakeholder-map-v311 .map-relations-v311 .relation-area-line { opacity: .62; stroke-width: 1.45; }
.stakeholder-map-v311 .map-relations-v311 .relation-institution-line { opacity: .3; }
.stakeholder-map-v311 .map-relations-v311 .relation-line.is-dimmed { opacity: .08; }
.stakeholder-map-v311 .map-relations-v311 .relation-line.is-highlight { opacity: .92; stroke-width: 2.35; }
.stakeholder-map-v311 .map-center-v311 { width: 148px; min-height: 148px; box-shadow: 0 12px 28px rgba(17,31,66,.18), 0 0 0 8px rgba(12,39,64,.035); }
.stakeholder-map-v311 .map-center-v311::after { display: none; }
.stakeholder-map-v311 .stakeholder-node-v311 { width: 104px; min-height: 104px; padding: .62rem .42rem .52rem; }
.stakeholder-map-v311 .stakeholder-node-v311.size-large { width: 118px; min-height: 118px; }
.stakeholder-map-v311 .stakeholder-node-v311.size-small { width: 94px; min-height: 94px; }
.stakeholder-map-v311 .stakeholder-node-v311.cluster-node { width: 112px; min-height: 112px; }
.stakeholder-map-v311 .stakeholder-node-v311 strong { max-width: 92px; font-size: .76rem; font-weight: 700; line-height: 1.14; }
.stakeholder-map-v311 .stakeholder-node-v311 small { max-width: 94px; margin-top: .25rem; font-size: .48rem; letter-spacing: .07em; line-height: 1.2; }
.stakeholder-map-v311 .stakeholder-node-v311 strong, .stakeholder-map-v311 .map-node-secondary-label, .stakeholder-map-v311 .stakeholder-node-v311 small { width: 100%; box-sizing: border-box; overflow-wrap: anywhere; text-align: center; }
.stakeholder-map-v311 .map-node-secondary-label { display: block; max-width: 94px; margin-top: .08rem; color: var(--ink-soft); font-size: .44rem; font-weight: 700; line-height: 1.05; }
.stakeholder-map-v311 .stakeholder-node-v311[data-display-name="Comisión Defensa"] strong { font-size: .62rem; line-height: 1.1; }
.stakeholder-map-v311 .stakeholder-node-v311[data-display-name="Comisión Digital"] strong, .stakeholder-map-v311 .stakeholder-node-v311[data-display-name="Comisión Ambiental"] strong { font-size: .68rem; line-height: 1.1; }
.stakeholder-map-v311 .map-node-identity { display: flex; width: auto; height: auto; min-width: 0; max-width: 78px; max-height: 38px; align-items: center; justify-content: center; margin: 0 auto .28rem; overflow: hidden; border: 0; border-radius: 0; color: var(--navy); background: transparent; font-size: .64rem; line-height: 1; }
.stakeholder-map-v311 .map-node-identity.identity-logo { display: block; width: auto; height: auto; max-width: 72px; max-height: 36px; object-fit: contain; object-position: center; padding: 0; }
.stakeholder-map-v311 .map-node-identity.identity-family { display: flex; flex-direction: column; gap: .12rem; color: var(--navy); background: transparent; }
.stakeholder-map-v311 .map-node-identity.identity-family b { font-size: .68rem; line-height: 1; }
.stakeholder-map-v311 .map-node-identity.identity-family small { margin: 0; color: var(--muted); font-size: .36rem; font-weight: 800; letter-spacing: .05em; line-height: 1; }
.stakeholder-map-v311 .map-node-identity.identity-eu-agency b, .stakeholder-map-v311 .map-node-identity.identity-eu-council b { color: #245c91; }
.stakeholder-map-v311 .node-badge { top: 7px; right: 10px; }
.stakeholder-map-v311 .stakeholder-node-v311.is-highlight, .stakeholder-map-v311 .stakeholder-node-v311[aria-expanded="true"] { box-shadow: 0 0 0 6px rgba(184,137,59,.12), 0 13px 28px rgba(20,44,69,.16); }
.stakeholder-map-v311 .stakeholder-node-v311.is-dimmed { opacity: .4; }
.stakeholder-map-v311 .map-hover-detail-v311 .popover-heading img, .stakeholder-map-v311 .map-hover-detail-v311 .popover-mark { width: auto; height: 30px; max-width: 54px; flex-basis: auto; border: 0; border-radius: 0; background: transparent; }
.stakeholder-map-v311 .map-hover-detail-v311 { max-width: 330px; border: 1px solid rgba(184,137,59,.24); border-left: 2px solid var(--gold); border-radius: 1px; box-shadow: 0 14px 30px rgba(20,44,69,.14); }
.stakeholder-map-v311 .map-secondary-disclosure .map-expansion-toggle { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .45rem; border: 0; border-top: 1px solid rgba(184,137,59,.25); border-bottom: 1px solid rgba(184,137,59,.16); background: rgba(255,253,249,.76); }
.stakeholder-map-v311 .map-secondary-disclosure .disclosure-count { color: var(--gold); font-size: .65rem; font-weight: 900; }
.stakeholder-map-v311 .map-secondary-disclosure .map-expansion-toggle span:nth-child(2) { color: var(--ink-soft); font-size: .57rem; }
.stakeholder-map-v311 .map-secondary-disclosure .map-expansion-toggle > span:last-child { color: var(--gold); }
.stakeholder-detail-v311 { top: 67px; max-height: calc(100vh - 67px); padding: 1.8rem 1.8rem 2rem; }
.stakeholder-detail-v311 .detail-identity { display: flex; width: auto; height: 56px; align-items: center; justify-content: flex-start; margin-bottom: .8rem; border: 0; border-radius: 0; background: transparent; }
.stakeholder-detail-v311 .detail-identity-mark { display: block; width: auto; max-width: 150px; max-height: 54px; color: var(--navy); font-size: 1rem; font-weight: 800; object-fit: contain; }
.stakeholder-detail-v311 .detail-phase-chips { display: flex; flex-wrap: wrap; gap: .3rem; margin: .1rem 0 .65rem; }
.stakeholder-detail-v311 .detail-phase-chips span { padding: .22rem .34rem; border: 1px solid rgba(20,141,120,.2); color: var(--teal); background: rgba(225,241,235,.34); font-size: .52rem; font-weight: 800; letter-spacing: .05em; }
.stakeholder-detail-v311 .detail-capacity-label { margin-right: .25rem; color: var(--navy); font-size: .58rem; letter-spacing: .08em; }
.stakeholder-detail-v311 .detail-agenda-list li { display: grid; gap: .12rem; }
.stakeholder-detail-v311 .detail-agenda-list li span { color: var(--muted); font-size: .58rem; }
  .skip-link { top: -5rem !important; visibility: visible !important; opacity: 0 !important; clip-path: inset(50%) !important; }
  .skip-link:focus { top: -5rem !important; visibility: visible !important; opacity: 0 !important; clip-path: inset(50%) !important; }
  .skip-link:focus-visible { top: 1rem !important; visibility: visible !important; opacity: 1 !important; clip-path: none !important; }

@media (max-width: 780px) {
  .stakeholder-map-v311 .map-center-v311 { width: 84px; min-height: 84px; }
  .stakeholder-map-v311 .stakeholder-node-v311 { width: 68px; min-height: 68px; padding: .34rem .2rem .28rem; }
  .stakeholder-map-v311 .stakeholder-node-v311.size-large { width: 80px; min-height: 80px; }
  .stakeholder-map-v311 .stakeholder-node-v311.size-small { width: 62px; min-height: 62px; }
  .stakeholder-map-v311 .stakeholder-node-v311.cluster-node { width: 74px; min-height: 74px; }
  .stakeholder-map-v311 .stakeholder-node-v311 strong { max-width: 61px; font-size: .52rem; line-height: 1.12; }
  .stakeholder-map-v311 .stakeholder-node-v311 small { max-width: 63px; margin-top: .15rem; font-size: .32rem; letter-spacing: .02em; }
  .stakeholder-map-v311 .map-node-secondary-label { max-width: 63px; margin-top: .05rem; font-size: .29rem; line-height: 1.05; }
  .stakeholder-map-v311 .stakeholder-node-v311[data-display-name="Comisión Defensa"] strong { font-size: .4rem; line-height: 1.08; }
  .stakeholder-map-v311 .stakeholder-node-v311[data-display-name="Comisión Digital"] strong, .stakeholder-map-v311 .stakeholder-node-v311[data-display-name="Comisión Ambiental"] strong { font-size: .42rem; line-height: 1.08; }
  .stakeholder-map-v311 .map-node-identity { max-width: 54px; max-height: 26px; margin-bottom: .16rem; font-size: .48rem; }
  .stakeholder-map-v311 .map-node-identity.identity-logo { max-width: 50px; max-height: 25px; }
  .stakeholder-map-v311 .map-node-identity.identity-family b { font-size: .5rem; }
  .stakeholder-map-v311 .map-node-identity.identity-family small { font-size: .27rem; }
  .stakeholder-map-v311 .node-badge { top: 3px; right: 4px; width: 15px; height: 15px; }
  .stakeholder-detail-v311 { top: auto; max-height: 88vh; }
}

@media (max-width: 390px) {
  .stakeholder-map-v311 .map-ring-label { font-size: 8px; }
  .stakeholder-map-v311 .stakeholder-node-v311 { width: 64px; min-height: 64px; }
  .stakeholder-map-v311 .stakeholder-node-v311.size-large { width: 74px; min-height: 74px; }
  .stakeholder-map-v311 .stakeholder-node-v311.size-small { width: 60px; min-height: 60px; }
  .stakeholder-map-v311 .stakeholder-node-v311.cluster-node { width: 70px; min-height: 70px; }
}

/* V3.21 human pass: family marks must remain readable and contained on
   cream surfaces, especially when the institutional name is long or textual. */
.institution-mark {
  width: 58px;
  min-width: 58px;
  height: 58px;
  max-width: 58px;
  padding: .2rem;
  overflow: hidden;
  box-sizing: border-box;
  line-height: 1.05;
  text-align: center;
  overflow-wrap: anywhere;
}
.institution-mark .institution-profile-logo {
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
}

@media (max-width: 780px) {
  .institution-hero { display: block; }
  .institution-mark { margin-bottom: .85rem; }
  .institution-hero-copy h1 { max-width: none; font-size: clamp(2.15rem, 10vw, 3rem); line-height: 1.04; }
  .institution-hero .official-button { margin-top: 1rem; }
}

/* V3.21: the consolidated profile is allowed to use the full mobile column.
   A logo beside a long institutional name creates one-word-per-line titles. */
.institution-v4-mark {
  overflow: hidden;
  box-sizing: border-box;
  padding: .35rem;
}
.institution-v4-logo {
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
}
.institution-v4-monogram {
  display: block;
  max-width: 100%;
  overflow-wrap: anywhere;
  text-align: center;
  font-size: .9rem;
  line-height: 1.05;
}

@media (max-width: 640px) {
  .institution-v4-identity { display: block; }
  .institution-v4-mark { width: 64px; height: 64px; margin-bottom: .9rem; }
  .institution-v4-identity > div:last-child { min-width: 0; }
  .institution-v4-hero h1 { max-width: none; font-size: clamp(2.15rem, 10vw, 3rem); line-height: 1.04; }
  .institution-v4-monogram { font-size: .62rem; }
}

/* C16.8: actor evidence is a single, source-led interaction. */
.topic-actor-drawer .drawer-label,
.explorer-drawer .drawer-label,
.stakeholder-detail-v311 .detail-section-label { color: var(--gold); }
.topic-actor-drawer h3,
.explorer-drawer h3,
.stakeholder-detail-v311 h2 { color: var(--navy); font-family: var(--serif); font-weight: 400; }
.topic-actor-drawer p:not(.drawer-label),
.explorer-drawer section > p:not(.drawer-label),
.stakeholder-detail-v311 .detail-role,
.stakeholder-detail-v311 .detail-evidence { color: var(--muted); }
.topic-evidence-disclosure,
.detail-evidence-disclosure { display: grid; gap: .3rem; }
.topic-evidence-disclosure summary,
.detail-evidence-disclosure summary { color: var(--gold); font-size: .58rem; font-weight: 800; cursor: pointer; list-style: none; }
.topic-evidence-disclosure summary::-webkit-details-marker,
.detail-evidence-disclosure summary::-webkit-details-marker { display: none; }
.topic-evidence-disclosure > div,
.detail-evidence-disclosure > div { display: grid; gap: .25rem; }
.topic-evidence-link,
.detail-actions .detail-link,
.procedure-basis-link { color: var(--gold); font-weight: 800; text-decoration: none; }
.topic-evidence-link:hover,
.topic-evidence-link:focus-visible,
.detail-actions .detail-link:hover,
.detail-actions .detail-link:focus-visible,
.procedure-basis-link:hover,
.procedure-basis-link:focus-visible { color: var(--navy); text-decoration: underline; }
.procedure-basis-link { align-self: center; padding: .32rem .55rem; border: 1px solid rgba(184,137,59,.4); font-size: .58rem; }

/* C12 · Current situation and next watch */
.what-to-watch-section { width: min(var(--content), calc(100% - 64px)); margin: 0 auto; padding: 2.25rem 0 2.45rem; }
.what-to-watch-home { border-bottom: 1px solid var(--line); }
.what-to-watch-section.what-to-watch-area { padding-top: 0; }
.what-to-watch-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1rem; }
.what-to-watch-heading .eyebrow { margin-bottom: .5rem; }
.what-to-watch-heading h2 { margin-bottom: 0; font-size: clamp(1.55rem, 2.4vw, 2.35rem); }
.what-to-watch-heading > p { max-width: 300px; margin: 0 0 .2rem; color: var(--ink-soft); font-size: .7rem; line-height: 1.45; text-align: right; }
.what-to-watch-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.what-to-watch-card { display: flex; min-width: 0; flex-direction: column; padding: 1rem 1rem .85rem; border: 1px solid var(--line); background: rgba(255,253,249,.7); }
.what-to-watch-card h3 { min-height: 2.6em; margin-bottom: .8rem; font-size: 1rem; line-height: 1.3; }
.what-to-watch-card .what-to-watch-area { color: var(--gold); font-size: .58rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.what-to-watch-card .what-to-watch-area { min-height: 1.25rem; margin: 0 0 .35rem; }
.what-to-watch-now, .what-to-watch-next { display: grid; gap: .2rem; padding: .55rem 0 .6rem .65rem; border-left: 2px solid var(--teal); }
.what-to-watch-next { margin-top: .35rem; border-left-color: var(--gold); }
.what-to-watch-now span, .what-to-watch-next span { color: var(--muted); font-size: .53rem; font-weight: 800; letter-spacing: .13em; }
.what-to-watch-now strong, .what-to-watch-next strong { color: var(--ink); font-size: .72rem; line-height: 1.35; }
.what-to-watch-now p, .what-to-watch-next p { margin: 0; color: var(--ink-soft); font-size: .64rem; line-height: 1.4; }
.what-to-watch-now small, .what-to-watch-next small { color: var(--muted); font-size: .58rem; line-height: 1.35; }
.what-to-watch-actions { display: flex; align-items: center; justify-content: space-between; gap: .65rem; margin-top: auto; padding-top: .75rem; }
.what-to-watch-source { overflow: hidden; color: var(--gold); font-size: .59rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.what-to-watch-cta { color: var(--gold); font-size: .64rem; font-weight: 800; white-space: nowrap; }
.what-to-watch-cta span { margin-left: .2rem; font-size: .9rem; }

@media (max-width: 1040px) {
  .what-to-watch-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
  .what-to-watch-section { width: min(100% - 32px, var(--content)); padding: 1.65rem 0 1.9rem; }
  .what-to-watch-heading { display: block; margin-bottom: .85rem; }
  .what-to-watch-heading > p { max-width: none; margin-top: .45rem; text-align: left; }
  .what-to-watch-grid { grid-template-columns: 1fr; gap: .6rem; }
  .what-to-watch-card h3 { min-height: 0; }
}

/* C5 map identity closure: the two compact nodes with cached marks must keep
   their visible name and role inside the circle at both target viewports. */
.stakeholder-map-v314 .stakeholder-node-v311[data-institution-id="ctbg:subdireccion-grupos-interes"] strong,
.stakeholder-map-v314 .stakeholder-node-v311[data-institution-id="cluster:interoperability-eu"] strong {
  display: block;
  max-height: none;
  overflow: visible;
  -webkit-line-clamp: unset;
  flex: 0 0 auto;
  font-size: .56rem;
  line-height: 1.45;
}
.stakeholder-map-v314 .stakeholder-node-v311[data-institution-id="ctbg:subdireccion-grupos-interes"] small {
  display: block;
  max-height: none;
  overflow: visible;
  -webkit-line-clamp: unset;
  flex: 0 0 auto;
  font-size: .4rem;
  line-height: 1.35;
}

@media (max-width: 780px) {
  .stakeholder-map-v314 .stakeholder-node-v311[data-institution-id="ctbg:subdireccion-grupos-interes"] strong { font-size: .38rem; line-height: 1.04; }
  .stakeholder-map-v314 .stakeholder-node-v311[data-institution-id="ctbg:subdireccion-grupos-interes"] small { font-size: .25rem; line-height: 1.04; }
  .stakeholder-map-v314 .stakeholder-node-v311[data-institution-id="cluster:interoperability-eu"] strong { font-size: .4rem; line-height: 1.04; }
}

/* Lobby V1.1: use the common Atlas composition. Lobby is special on Home,
   while its area and dossier follow the same editorial rails as every other
   Atlas surface. */
.home-areas { max-width: 980px; }
.home-section-heading, .home-highlight-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.home-section-heading { margin-bottom: .9rem; }
.home-section-heading h2, .home-highlight-heading h2 { margin: .2rem 0 0; font-size: clamp(1.35rem, 2.2vw, 1.8rem); }
.home-section-heading > span { color: var(--muted); font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.home-areas .area-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .55rem; }
.home-areas .area-tile { position: relative; display: flex; min-height: 128px; flex-direction: column; justify-content: space-between; padding: .95rem .85rem .8rem; border: 1px solid rgba(20,44,69,.14); border-radius: 2px 12px 2px 12px; background: rgba(255,255,255,.6); box-shadow: 0 5px 18px rgba(20,44,69,.025); transition: border-color .2s, background .2s, box-shadow .2s, transform .2s; }
.home-areas .area-tile::before { width: 28px; height: 2px; content: ''; background: var(--gold); transition: width .2s; }
.home-areas .area-tile:hover { border-color: rgba(185,134,61,.7); background: rgba(255,255,255,.88); box-shadow: 0 12px 25px rgba(20,44,69,.08); transform: translateY(-3px); }
.home-areas .area-tile:hover::before { width: 44px; }
.home-areas .area-tile-index { color: var(--muted); font-size: .55rem; font-weight: 800; letter-spacing: .12em; }
.home-areas .area-tile h2 { margin: .7rem 0 .95rem; color: var(--ink); font-size: .74rem; line-height: 1.35; }
.home-areas .area-tile .arrow-link { font-size: .64rem; font-weight: 800; }
.home-highlight { margin-top: 2rem; padding-top: 1.4rem; border-top: 1px solid rgba(20,44,69,.15); }
.home-highlight-heading { align-items: baseline; justify-content: flex-end; margin-bottom: .85rem; }
.home-highlight-heading .eyebrow { margin: 0; }
.home-highlight-card { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr); gap: 2rem; padding: 1.3rem 1.4rem 1.2rem; border: 1px solid rgba(185,134,61,.48); border-left: 3px solid var(--gold); border-radius: 2px 18px 2px 18px; background: rgba(255,253,249,.78); box-shadow: 0 9px 24px rgba(20,44,69,.04); }
.home-highlight-card:hover { border-color: rgba(185,134,61,.8); box-shadow: 0 14px 29px rgba(20,44,69,.08); }
.home-highlight-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .7rem; margin-bottom: .7rem; color: var(--gold); font-size: .58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.home-highlight-badge { padding: .28rem .42rem; color: var(--navy); background: var(--gold-soft); }
.home-highlight-copy .eyebrow { margin-bottom: .45rem; }
.home-highlight-copy h2 { max-width: 620px; margin-bottom: .4rem; font-size: clamp(1.75rem, 3.2vw, 2.7rem); }
.home-highlight-subtitle { margin-bottom: .7rem; color: var(--gold); font-family: var(--serif); font-size: .9rem; }
.home-highlight-description { max-width: 650px; margin-bottom: 1rem; color: var(--ink-soft); font-size: .72rem; line-height: 1.55; }
.home-highlight-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.2rem; }
.home-highlight-actions .arrow-link { font-size: .68rem; }
.home-highlight-actions .text-link { font-size: .68rem; }
.home-highlight-facts { display: grid; align-content: start; gap: .55rem; }
.home-highlight-facts > div { display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: .65rem; padding: .58rem 0; border-top: 1px solid var(--line); }
.home-highlight-facts > div:first-child { border-top: 0; }
.home-highlight-facts span { color: var(--gold); font-size: .54rem; font-weight: 800; letter-spacing: .1em; line-height: 1.3; text-transform: uppercase; }
.home-highlight-facts strong { color: var(--ink); font-size: .65rem; line-height: 1.35; }
.home-highlight-facts small { grid-column: 2; margin-top: -.45rem; color: var(--muted); font-size: .57rem; line-height: 1.3; }
.home-highlight-note { margin-top: .25rem; padding: .65rem .7rem !important; border: 1px solid var(--gold-soft); background: rgba(234,219,193,.3); }
.home-highlight-note span { color: var(--ink-soft); }
.home-highlight-note strong { color: var(--gold); }

.lobby-area-page .area-hero { color: var(--ink); background-color: var(--paper); background-image: radial-gradient(circle at 76% 44%, rgba(184,137,59,.08) 0 1px, transparent 1.5px), repeating-radial-gradient(ellipse at 76% 44%, transparent 0 105px, rgba(184,137,59,.06) 106px 107px, transparent 108px 210px); }
.lobby-area-page .area-hero::after { background: linear-gradient(180deg, rgba(249,248,246,.08), rgba(249,248,246,.24)); }
.lobby-area-page .area-hero-inner { width: min(1280px, calc(100% - 104px)); }
.lobby-area-page .lobby-area-copy { max-width: 280px; }
.lobby-area-page .lobby-area-status { display: grid; gap: .45rem; margin-top: .1rem; padding: .75rem 0 0 .8rem; border-left: 2px solid var(--gold); color: var(--ink-soft); font-size: .62rem; line-height: 1.4; }
.lobby-area-page .lobby-status-pill { color: var(--teal); background: var(--teal-soft); }
.lobby-area-visual { align-self: center; min-width: 0; padding: 1.2rem 1.25rem 1.1rem; border: 1px solid rgba(20,44,69,.14); border-radius: 2px 20px 2px 20px; background: rgba(255,255,255,.42); }
.lobby-area-visual-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-bottom: .9rem; border-bottom: 1px solid var(--line); }
.lobby-area-visual-heading .eyebrow { margin: 0; }
.lobby-area-visual-heading h2 { max-width: 420px; margin: 0; font-size: clamp(1.35rem, 2.5vw, 2.15rem); }
.lobby-area-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 1.1rem 0 .85rem; padding: 0; list-style: none; }
.lobby-area-flow li { display: grid; min-height: 104px; align-content: center; gap: .5rem; padding: .75rem .8rem; border-right: 1px solid var(--line); }
.lobby-area-flow li:last-child { border-right: 0; }
.lobby-area-flow span { color: var(--gold); font-size: .55rem; font-weight: 800; letter-spacing: .12em; }
.lobby-area-flow strong { color: var(--ink); font-family: var(--serif); font-size: .82rem; font-weight: 400; line-height: 1.3; }
.lobby-area-mechanisms { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; }
.lobby-area-mechanisms span { padding: .55rem .5rem; border-top: 2px solid var(--teal); color: var(--ink-soft); background: rgba(225,241,235,.42); font-size: .57rem; font-weight: 800; line-height: 1.3; }
.lobby-area-visual-note { margin: .9rem 0 0; color: var(--muted); font-size: .61rem; line-height: 1.45; }
.lobby-area-topics .topic-card-grid { grid-template-columns: minmax(0, 860px); }
.lobby-topic-card { min-height: 0; border-radius: 2px 16px 2px 16px; }
.lobby-topic-card h2 { max-width: 680px; }
.lobby-topic-card .card-current p { margin-bottom: .25rem; }
.lobby-topic-card .card-last time { display: block; margin: .2rem 0; color: var(--muted); font-size: .62rem; }
.lobby-area-source-note { display: flex; flex-wrap: wrap; gap: .85rem 1.2rem; margin-top: .7rem; color: var(--muted); font-size: .62rem; }

.lobby-dossier-page .lobby-topic-hero { width: min(1280px, calc(100% - 104px)); margin: 0 auto; padding-top: 1.35rem; }
.lobby-topic-official-title { max-width: 780px; margin: .8rem 0 1rem; color: var(--muted); font-size: .7rem; line-height: 1.5; }
.lobby-topic-official-title span { display: block; margin-bottom: .2rem; color: var(--gold); font-size: .56rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.lobby-register-banner { display: grid; gap: .4rem; max-width: 640px; margin-top: 1.1rem; padding: .8rem .9rem; border-left: 3px solid var(--gold); background: rgba(255,253,249,.94); color: var(--ink); }
.lobby-register-banner-label { margin: 0; color: var(--gold); font-size: .62rem; font-weight: 800; letter-spacing: .12em; }
.lobby-register-banner p:not(.lobby-register-banner-label) { margin: 0; font-size: .75rem; line-height: 1.45; }
.lobby-register-cta { display: inline-flex; width: fit-content; align-items: center; gap: .35rem; margin-top: .2rem; padding: .55rem .7rem; color: var(--white); background: var(--navy); font-size: .66rem; font-weight: 800; }
.lobby-register-cta:hover { color: var(--white); background: var(--navy-mid); }
.lobby-topic-fact-expected { border-top: 1px dashed var(--gold) !important; }
.lobby-dossier-page .lobby-dossier-body { width: min(1280px, calc(100% - 104px)); padding-top: .6rem; }
.lobby-dossier-page .lobby-block { margin-top: 0; padding: 1.7rem 0 1.9rem; border: 0; border-top: 1px solid var(--line); background: transparent; }
.lobby-dossier-page .lobby-block:first-of-type { border-top: 0; }
.lobby-dossier-page .lobby-section-heading { margin-bottom: 1rem; }
.lobby-dossier-page .lobby-section-heading h2 { font-size: clamp(1.5rem, 2.3vw, 2.15rem); }
.lobby-dossier-page .lobby-reading-ribbon { margin-bottom: .2rem; }

@media (max-width: 1040px) {
  .home-areas { max-width: 820px; }
  .lobby-area-page .area-hero-inner, .lobby-dossier-page .lobby-topic-hero, .lobby-dossier-page .lobby-dossier-body { width: min(100% - 64px, 1280px); }
  .home-areas .area-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-highlight-card { grid-template-columns: minmax(0, 1fr) minmax(240px, .8fr); gap: 1.25rem; }
}

@media (max-width: 780px) {
  .home-areas { max-width: none; margin-top: 2.5rem; }
  .home-section-heading, .home-highlight-heading { align-items: flex-start; flex-direction: column; gap: .3rem; }
  .home-areas .area-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-areas .area-tile { min-height: 116px; }
  .home-highlight { margin-top: 1.6rem; padding-top: 1.15rem; }
  .home-highlight-card { display: block; padding: 1.1rem 1rem 1rem; border-radius: 2px 14px 2px 14px; }
  .home-highlight-facts { margin-top: 1.2rem; }
  .home-highlight-facts > div { grid-template-columns: 100px minmax(0, 1fr); }
  .lobby-area-page .area-hero-inner, .lobby-dossier-page .lobby-topic-hero, .lobby-dossier-page .lobby-dossier-body { width: calc(100% - 32px); }
  .lobby-area-page .lobby-area-copy { max-width: 330px; }
  .lobby-area-page .lobby-area-status { max-width: 330px; margin-top: 1rem; }
  .lobby-area-visual { margin: 1.2rem 0 0; padding: 1rem; }
  .lobby-area-visual-heading { display: block; }
  .lobby-area-visual-heading h2 { margin-top: .35rem; }
  .lobby-area-flow { display: block; margin: .75rem 0; }
  .lobby-area-flow li { min-height: 0; padding: .75rem .65rem; border-right: 0; border-bottom: 1px solid var(--line); }
  .lobby-area-flow li:last-child { border-bottom: 0; }
  .lobby-area-mechanisms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lobby-area-topics .topic-card-grid { grid-template-columns: 1fr; }
  .lobby-dossier-page .lobby-topic-hero { padding-top: 1.1rem; }
  .lobby-dossier-page .lobby-dossier-body { padding-top: .2rem; }
  .lobby-dossier-page .lobby-block { padding: 1.35rem 0 1.5rem; }
}

@media (max-width: 390px) {
  .home-areas .area-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-areas .area-tile { padding-right: .7rem; padding-left: .7rem; }
  .home-highlight-facts > div { grid-template-columns: 90px minmax(0, 1fr); }
  .lobby-area-mechanisms { grid-template-columns: 1fr; }
}

/* Lobby V1.2: the area owns the hierarchy; the dossier is secondary. */
.home-highlight-card { grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr); gap: 1.6rem; align-items: stretch; padding: 1.45rem 1.5rem 1.35rem; }
.home-highlight-area { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding-right: 1rem; }
.home-highlight-area h3 { margin: .3rem 0 .35rem; color: var(--ink); font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 3.8rem); font-weight: 400; line-height: 1; }
.home-highlight-area .home-highlight-subtitle { margin-bottom: .8rem; font-size: 1rem; }
.home-highlight-area .home-highlight-description { max-width: 590px; margin-bottom: 1.25rem; font-size: .78rem; }
.home-highlight-primary, .home-highlight-secondary { display: inline-flex; width: fit-content; align-items: center; gap: .35rem; font-size: .7rem; font-weight: 800; }
.home-highlight-primary { padding: .7rem .85rem; color: var(--white); background: var(--navy); }
.home-highlight-primary:hover { color: var(--white); background: var(--navy-mid); }
.home-highlight-dossier { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: 1rem 0 1rem 1.35rem; border-left: 1px solid var(--line); }
.home-highlight-dossier-label { margin-bottom: .55rem; color: var(--gold); font-size: .57rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.home-highlight-dossier h3 { margin-bottom: .4rem; color: var(--ink); font-size: 1.15rem; line-height: 1.25; }
.home-highlight-dossier-title { margin-bottom: .75rem; color: var(--ink-soft); font-family: var(--serif); font-size: .78rem; line-height: 1.45; }
.home-highlight-status { display: inline-flex; width: fit-content; margin-bottom: .9rem; padding: .28rem .42rem; color: var(--teal); background: var(--teal-soft); font-size: .57rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.home-highlight-next { display: grid; gap: .18rem; padding: .7rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.home-highlight-next span { color: var(--gold); font-size: .55rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.home-highlight-next strong { color: var(--ink); font-size: .7rem; line-height: 1.35; }
.home-highlight-next small { color: var(--muted); font-size: .6rem; }
.home-highlight-secondary { margin-top: .9rem; color: var(--ink); }
.home-highlight-secondary:hover { color: var(--gold); }

.lobby-v12-dossier .lobby-v12-hero { width: min(1280px, calc(100% - 104px)); margin: 0 auto; }
.lobby-v12-dossier .lobby-v12-body { width: min(1280px, calc(100% - 104px)); padding-top: .25rem; }
.lobby-v12-block { margin-top: 0; padding: 1.55rem 0 1.8rem; border-top: 1px solid var(--line); }
.lobby-v12-block:first-child { border-top: 0; }
.lobby-v12-block .lobby-section-heading { margin-bottom: 1rem; }
.lobby-v12-change-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.lobby-v12-change { display: flex; min-width: 0; flex-direction: column; padding: .9rem; border: 1px solid var(--line); background: var(--white); }
.lobby-v12-change h3 { margin-bottom: .35rem; font-size: .95rem; }
.lobby-v12-change p { margin-bottom: .25rem; color: var(--ink-soft); font-size: .68rem; line-height: 1.5; }
.lobby-v12-change .lobby-evidence-row { margin-top: auto; padding-top: .65rem; }
.lobby-v12-details { display: grid; gap: .55rem; }
.lobby-v12-details details { border-top: 1px solid var(--line); background: rgba(255,255,255,.45); }
.lobby-v12-details details:last-child { border-bottom: 1px solid var(--line); }
.lobby-v12-details summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem .1rem; color: var(--ink); font-size: .78rem; font-weight: 800; cursor: pointer; list-style: none; }
.lobby-v12-details summary::-webkit-details-marker { display: none; }
.lobby-v12-details summary::after { color: var(--gold); content: '+'; font-size: 1rem; font-weight: 400; }
.lobby-v12-details details[open] summary::after { content: '−'; }
.lobby-v12-details details > :not(summary) { padding: 0 .1rem 1rem; }
.lobby-v12-source-list { gap: .4rem; }
.lobby-v12-source-list .lobby-source-row { padding: .65rem .75rem; }

/* V1.3: keep the legal lifecycle and implementation clocks compact while
   making the two tracks legible at a glance. */
.lobby-stage-deadline { display: inline-block; margin: .05rem 0 .22rem; color: var(--gold); font-size: .56rem; letter-spacing: .1em; }
.lobby-stage-deadline-context { min-height: 0 !important; margin-bottom: .5rem !important; color: var(--ink-soft) !important; font-size: .66rem !important; }
.lobby-conditional { display: block; }
.lobby-conditional-label { margin: 0 0 .6rem; color: #727977; font-size: .55rem; font-weight: 800; letter-spacing: .1em; }
.lobby-conditional-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.lobby-conditional-grid article { display: grid; align-content: start; gap: .28rem; padding: .65rem .7rem; border-top: 1px solid rgba(20,44,69,.14); }
.lobby-conditional-grid article span { color: #727977; font-size: .5rem; font-weight: 800; letter-spacing: .08em; }
.lobby-conditional-grid article strong { font-size: .7rem; line-height: 1.3; }
.lobby-conditional-grid article p { margin: 0; color: var(--ink-soft); font-size: .62rem; line-height: 1.4; }
.lobby-clock-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.lobby-clock-card { display: flex; min-width: 0; flex-direction: column; padding: .8rem; border: 1px solid var(--line); background: rgba(255,255,255,.62); }
.lobby-clock-card .lobby-card-topline { display: flex; min-height: 2.1em; align-items: flex-start; justify-content: space-between; gap: .45rem; }
.lobby-clock-card .lobby-card-topline > span { color: var(--muted); font-size: .5rem; font-weight: 800; line-height: 1.3; text-transform: uppercase; }
.lobby-clock-card .lobby-article-tag { display: none; }
.lobby-clock-card h3 { margin: .55rem 0 .35rem; font-size: .78rem; line-height: 1.3; }
.lobby-clock-card > strong { color: var(--gold); font-size: .62rem; letter-spacing: .08em; line-height: 1.3; }
.lobby-clock-card p { flex: 1; margin: .42rem 0 .55rem; color: var(--ink-soft); font-size: .62rem; line-height: 1.45; }
.lobby-clock-card .lobby-source-link { font-size: .56rem; }
.lobby-system-heading { margin: 1.35rem 0 .65rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.lobby-system-heading .eyebrow { margin-bottom: .25rem; }
.lobby-system-heading h3 { margin-bottom: .25rem; font-size: 1rem; }
.lobby-system-heading p:last-child { margin: 0; color: var(--muted); font-size: .62rem; }
.lobby-system-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.lobby-system-card { padding: .8rem; border: 1px dashed rgba(184,137,59,.55); background: rgba(234,219,193,.18); }
.lobby-system-card > span { color: var(--gold); font-size: .51rem; font-weight: 800; letter-spacing: .1em; }
.lobby-system-card h3 { margin: .38rem 0 .25rem; font-size: .82rem; }
.lobby-system-card > strong { color: var(--ink-soft); font-size: .56rem; letter-spacing: .1em; }
.lobby-system-card p { margin: .45rem 0 .55rem; color: var(--ink-soft); font-size: .63rem; line-height: 1.45; }
.lobby-system-card .lobby-evidence-row { max-width: 100%; }

/* V1.3 compact pass: the implementation track must add signal without
   turning the dossier into a second long-form document. */
.lobby-v14-dossier .lobby-roadmap-stage h3 { min-height: 2.2em; margin-bottom: .25rem; }
.lobby-v14-dossier .lobby-roadmap-stage p { min-height: 2.25em; margin-bottom: .35rem; }

/* Lobby V1.4: the area is the visual owner on Home; the legal identity stays
   readable wherever the dossier is introduced. */
.home-highlight-area-title { margin: .3rem 0 .35rem; color: var(--ink); font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 3.8rem); font-weight: 400; line-height: 1; }
.home-highlight-dossier-title { max-width: 42rem; font-size: clamp(.82rem, 1.05vw, .98rem); line-height: 1.38; }
.lobby-agenda-official-title { max-width: 760px; margin: -.15rem 0 .8rem; color: var(--ink-soft); font-family: var(--serif); font-size: .78rem; line-height: 1.4; }
.lobby-agenda-official-title span { display: block; margin-bottom: .2rem; color: var(--gold); font-family: var(--sans); font-size: .52rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.lobby-topic-official-title { max-width: 900px; margin: .8rem 0 1rem; color: var(--ink-soft); font-size: clamp(.9rem, 1.25vw, 1.05rem); line-height: 1.38; }
.lobby-topic-official-title strong { display: block; font-weight: 500; }
.lobby-topic-official-id { display: block; margin-top: .45rem; color: var(--gold); font-family: var(--sans); font-size: .62rem; font-weight: 800; letter-spacing: .08em; }

/* Same Atlas radial renderer, with only semantic weight and identity cues
   needed to read the Lobby contract in one glance. */
.stakeholder-map-v314 .stakeholder-node-v311.map-node-regulated-subject { border: 1px dashed rgba(129,91,143,.7); background: rgba(250,246,252,.96); }
.stakeholder-map-v314 .stakeholder-node-v311.map-node-regulated-subject { width: 112px; min-height: 112px; }
.stakeholder-map-v314 .stakeholder-node-v311[data-institution-id="ctbg"] { width: 118px; min-height: 118px; }
.stakeholder-map-v314 .stakeholder-node-v311.map-node-interoperability { width: 86px; min-height: 86px; border-style: dotted; border-color: rgba(88,126,145,.48); opacity: .8; }
.stakeholder-map-v314 .stakeholder-node-v311.map-node-functional-cluster { width: 92px; min-height: 92px; border-width: 1px; opacity: .86; }
.stakeholder-map-v314 .stakeholder-node-v311.map-node-subordinate { border-style: dashed; border-color: rgba(42,171,148,.72); }
.stakeholder-map-v314 .stakeholder-node-v311 small { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.stakeholder-map-v314 .stakeholder-node-v311.map-node-regulated-subject small,
.stakeholder-map-v314 .stakeholder-node-v311[data-institution-id="ctbg"] small { max-width: 108px; }
.stakeholder-map-v314 .stakeholder-node-v311.map-node-regulated-subject small { color: #765786; }
.stakeholder-map-v314 .stakeholder-node-v311.map-node-interoperability small { color: #5d7888; }
.stakeholder-map-v314 .stakeholder-node-v311.map-node-regulated-subject strong { color: #5e416d; }

@media (max-width: 780px) {
  .home-highlight-area-title { font-size: clamp(2.2rem, 13vw, 3.2rem); }
  .home-highlight-dossier-title { font-size: .84rem; }
  .lobby-agenda-official-title { font-size: .74rem; }
  .lobby-topic-official-title { max-width: none; font-size: .88rem; }
  .stakeholder-map-v314 .stakeholder-node-v311.map-node-regulated-subject { width: 68px; min-height: 68px; }
  .stakeholder-map-v314 .stakeholder-node-v311[data-institution-id="ctbg"] { width: 68px; min-height: 68px; }
  .stakeholder-map-v314 .stakeholder-node-v311.map-node-interoperability { width: 58px; min-height: 58px; }
  .stakeholder-map-v314 .stakeholder-node-v311.map-node-functional-cluster { width: 64px; min-height: 64px; }
  .stakeholder-map-v314 .stakeholder-node-v311.map-node-regulated-subject small,
  .stakeholder-map-v314 .stakeholder-node-v311[data-institution-id="ctbg"] small { max-width: 62px; font-size: .27rem; letter-spacing: 0; }
}
.lobby-v13-dossier .lobby-stage-deadline-context { margin-bottom: .3rem !important; font-size: .6rem !important; line-height: 1.3; }
.lobby-v13-dossier .lobby-conditional { margin-top: .85rem; padding: .65rem .75rem; }
.lobby-v13-dossier .lobby-conditional-label { margin-bottom: .4rem; }
.lobby-v13-dossier .lobby-conditional-grid article { padding: .5rem .6rem; }
.lobby-v13-dossier .lobby-clock-grid { gap: .45rem; }
.lobby-v13-dossier .lobby-clock-card { padding: .6rem .65rem; }
.lobby-v13-dossier .lobby-clock-card .lobby-card-topline { min-height: 1.45em; }
.lobby-v13-dossier .lobby-clock-card h3 { margin: .35rem 0 .25rem; font-size: .72rem; }
.lobby-v13-dossier .lobby-clock-card > strong { font-size: .58rem; }
.lobby-v13-dossier .lobby-clock-card p { margin: .3rem 0 .35rem; font-size: .58rem; line-height: 1.3; }
.lobby-v13-dossier .lobby-clock-card .lobby-source-link { font-size: .52rem; }
.lobby-v13-dossier .lobby-system-heading { margin: 1rem 0 .5rem; padding-top: .75rem; }
.lobby-v13-dossier .lobby-system-card { padding: .6rem; }
.lobby-v13-dossier .lobby-system-card h3 { margin: .3rem 0 .2rem; font-size: .75rem; }
.lobby-v13-dossier .lobby-system-card > strong { font-size: .52rem; }
.lobby-v13-dossier .lobby-system-card p { margin: .3rem 0 .35rem; font-size: .57rem; line-height: 1.3; }
.lobby-v13-dossier .lobby-actors-block .lobby-table th,
.lobby-v13-dossier .lobby-actors-block .lobby-table td { padding: .57rem .6rem; font-size: .6rem; }
.lobby-v13-dossier .lobby-clocks-block { padding-top: 1.3rem; padding-bottom: 1rem; }

@media (min-width: 1200px) {
  .lobby-v13-dossier .lobby-clock-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .lobby-v13-dossier .lobby-clock-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .18rem .5rem; padding: .5rem .55rem; }
  .lobby-v13-dossier .lobby-clock-card .lobby-card-topline,
  .lobby-v13-dossier .lobby-clock-card p,
  .lobby-v13-dossier .lobby-clock-card > div:last-child { grid-column: 1 / -1; }
  .lobby-v13-dossier .lobby-clock-card .lobby-card-topline { min-height: 0; }
  .lobby-v13-dossier .lobby-clock-card h3 { grid-column: 1; margin: .08rem 0; font-size: .68rem; }
  .lobby-v13-dossier .lobby-clock-card > strong { grid-column: 2; grid-row: 2; max-width: 7rem; align-self: start; font-size: .54rem; text-align: right; }
  .lobby-v13-dossier .lobby-clock-card p { margin: .12rem 0 .18rem; font-size: .54rem; line-height: 1.25; }
  .lobby-v13-dossier .lobby-clock-card .lobby-source-link { font-size: .49rem; }
  .lobby-v13-dossier .lobby-system-card { padding: .5rem .55rem; }
  .lobby-v13-dossier .lobby-system-card p { font-size: .54rem; line-height: 1.25; }
}

@media (max-width: 1040px) {
  .lobby-v12-dossier .lobby-v12-hero, .lobby-v12-dossier .lobby-v12-body { width: min(100% - 64px, 1280px); }
}

@media (max-width: 780px) {
  .home-highlight-card { display: block; padding: 1.15rem 1rem 1rem; }
  .home-highlight-area { padding-right: 0; }
  .home-highlight-dossier { margin-top: 1.25rem; padding: 1rem 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .lobby-v12-dossier .lobby-v12-hero, .lobby-v12-dossier .lobby-v12-body { width: calc(100% - 32px); }
  .lobby-v12-block { padding: 1.3rem 0 1.45rem; }
  .lobby-v12-change-grid { grid-template-columns: 1fr; }
  .lobby-conditional-grid, .lobby-clock-grid, .lobby-system-grid { grid-template-columns: 1fr; }
  .lobby-v13-dossier .lobby-clock-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .25rem .65rem; }
  .lobby-v13-dossier .lobby-clock-card .lobby-card-topline,
  .lobby-v13-dossier .lobby-clock-card p,
  .lobby-v13-dossier .lobby-clock-card > div:last-child { grid-column: 1 / -1; }
  .lobby-v13-dossier .lobby-clock-card .lobby-card-topline { min-height: 0; }
  .lobby-v13-dossier .lobby-clock-card h3 { grid-column: 1; margin: .08rem 0; }
  .lobby-v13-dossier .lobby-clock-card > strong { grid-column: 2; grid-row: 2; max-width: 9rem; align-self: start; text-align: right; }
  .lobby-v13-dossier .lobby-clock-card p { margin: .12rem 0 .2rem; }
  .lobby-v13-dossier .lobby-system-card { padding: .6rem; }
  .lobby-v12-dossier .lobby-roadmap { display: block; padding-left: 1rem; }
  .lobby-v12-dossier .lobby-roadmap::before { top: 1rem; bottom: 1.1rem; left: .47rem; width: 1px; height: auto; background: linear-gradient(180deg, var(--gold) 0 74%, #9b9e9a 74% 100%); }
  .lobby-v12-dossier .lobby-roadmap-stage { grid-template-columns: 1.1rem 1fr; grid-template-rows: auto; gap: .65rem; margin-bottom: .8rem; padding: 0; }
  .lobby-v12-dossier .lobby-roadmap-stage h3, .lobby-v12-dossier .lobby-roadmap-stage p { min-height: 0; }
  .lobby-v12-dossier .lobby-roadmap-marker { margin-top: .2rem; }
  .lobby-v12-dossier .lobby-roadmap-stage > div:last-child { padding-bottom: .4rem; }
}

/* V4.1B: compact, evidence-first activity pages. */
.institution-v41-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; }
.institution-v41-summary-grid > div { display: grid; gap: .2rem; padding: .85rem; border: 1px solid rgba(20,44,69,.13); background: rgba(255,255,255,.48); }
.institution-v41-summary-grid strong { color: var(--navy, #0c2740); font-family: Georgia, 'Times New Roman', serif; font-size: 1.8rem; font-weight: 400; }
.institution-v41-summary-grid span { color: var(--muted, #657287); font-size: .62rem; line-height: 1.35; text-transform: uppercase; }
.institution-v41-disclaimer { max-width: 820px; margin: .9rem 0 0; color: var(--muted, #657287); font-size: .7rem; line-height: 1.5; }
.institution-v41-role-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin: 0; padding: 0; list-style: none; }
.institution-v41-role-list li { display: flex; align-items: baseline; justify-content: space-between; gap: .8rem; padding: .75rem .85rem; border: 1px solid rgba(20,141,120,.2); background: rgba(225,241,235,.28); }
.institution-v41-role-list strong { color: var(--navy, #0c2740); font-size: .76rem; }
.institution-v41-role-list span { color: var(--teal, #148d78); font-size: .62rem; text-align: right; }
.institution-v41-role-chips { display: flex; flex-wrap: wrap; gap: .3rem; }
.institution-v41-role-chips span { padding: .28rem .45rem; border: 1px solid rgba(20,141,120,.22); border-radius: 99px; color: var(--teal, #148d78); font-size: .58rem; font-weight: 800; line-height: 1.25; }
.institution-v41-card-explanation { margin: .75rem 0 0; color: var(--muted, #657287); font-size: .68rem; line-height: 1.45; }
.institution-v41-trace { margin-top: .75rem; border-top: 1px solid rgba(20,44,69,.1); }
.institution-v41-trace summary { padding: .65rem 0 0; color: var(--gold, #9e6f2a); font-size: .62rem; font-weight: 800; cursor: pointer; list-style: none; }
.institution-v41-trace summary::-webkit-details-marker { display: none; }
.institution-v41-trace summary::after { content: '＋'; float: right; }
.institution-v41-trace[open] summary::after { content: '−'; }
.institution-v41-trace > div { padding-top: .55rem; color: var(--muted, #657287); font-size: .63rem; line-height: 1.45; }
.institution-v41-trace p { margin: .35rem 0; }
.institution-v41-trace b { color: var(--navy, #0c2740); }
.institution-v41-source-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.institution-v41-source-links a { color: var(--gold, #9e6f2a); font-weight: 800; text-decoration: none; }
.institution-v41-trace-count { color: var(--muted, #657287); font-size: .58rem; }
@media (max-width: 640px) {
  .institution-v41-summary-grid, .institution-v41-role-list { grid-template-columns: 1fr 1fr; }
  .institution-v41-role-list li { display: grid; gap: .25rem; }
  .institution-v41-role-list span { text-align: left; }
}

@media (max-width: 780px) {
  .topic-inline-roster { grid-template-columns: 1fr; }
  .topic-inline-roster .topic-inline-row { grid-template-columns: auto minmax(0, 1fr) auto; min-width: 0; }
  .topic-inline-actor-count { max-width: 112px; }
  .topic-actor-phase-map { padding: .7rem .48rem .55rem; }
  .topic-actor-phase-map::before { top: 2.55rem; bottom: .55rem; left: .85rem; }
  .topic-actor-phase-map-intro { gap: .55rem; margin-left: 1.15rem; font-size: .48rem; }
  .topic-phase-map-row { grid-template-columns: 1fr; gap: .28rem; min-height: 0; padding: .48rem 0 .58rem 1.15rem; }
  .topic-phase-map-lane.left, .topic-phase-map-lane.right { justify-content: flex-start; }
  .topic-phase-map-lane { gap: .28rem; }
  .topic-phase-map-actor { flex: 1 1 145px; padding: .36rem .4rem; }
  .topic-phase-map-actor strong { max-width: none; font-size: .59rem; }
  .topic-phase-map-actor small { font-size: .48rem; }
  .topic-phase-map-edge { display: none; }
  .topic-phase-map-phase { order: -1; min-height: 59px; padding: .5rem .56rem; }
  .topic-phase-map-phase strong { font-size: .88rem; }
}

/* C4.1: official marks sit directly in the actor circle; this wrapper is
   layout-only and must not read as a card, plate, or second circle. */
.stakeholder-node-v311 .map-node-identity { display: flex; width: auto; height: auto; min-width: 0; max-width: 78px; max-height: 38px; align-items: center; justify-content: center; margin: 0 auto .28rem; overflow: hidden; border: 0; border-radius: 0; color: var(--navy); background: transparent; box-shadow: none; }
.stakeholder-node-v311 .map-node-identity.identity-family { border-radius: 0; }
.stakeholder-node-v311 .map-node-identity.identity-logo { display: block; width: auto; height: auto; max-width: 72px; max-height: 36px; object-fit: contain; object-position: center; padding: 0; border: 0; background: transparent; box-shadow: none; }
.stakeholder-node-v311 img[src*="emad.png"], .topic-actor-mark img[src*="emad.png"] { background: transparent; padding: 0; }
@media (max-width: 780px) {
  .stakeholder-node-v311 .map-node-identity { max-width: 54px; max-height: 26px; margin-bottom: .16rem; }
  .stakeholder-node-v311 .map-node-identity.identity-logo { max-width: 50px; max-height: 25px; }
}

/* V3.14: one Area agenda-card grammar. Data can differ by dossier, but the
   public reading order and visual rhythm stay stable across all five areas. */
.area-topics .topic-card-grid { align-items: start; }
.area-topics .topic-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 1.25rem 1.25rem 1.1rem;
}
.area-topics .topic-card.is-primary { border-top: 2px solid rgba(185,134,61,.78); }
.area-topics .topic-card .card-status { min-height: 0; margin: 0 0 .72rem; color: var(--ink-soft); font-size: .61rem; letter-spacing: .07em; line-height: 1.35; text-transform: uppercase; }
.area-topics .topic-card .card-status::before { width: 6px; height: 6px; margin-right: .42rem; }
.area-topics .topic-card h2 { min-height: 0; margin: 0 0 .2rem; font-size: 1.52rem; line-height: 1.1; }
.card-row { display: grid; min-width: 0; align-content: start; gap: .22rem; padding-top: .72rem; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: .7rem; line-height: 1.42; }
.card-row-label, .card-sub-label { color: var(--gold); font-size: .53rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.card-row p { margin: 0; color: var(--ink); font-size: .72rem; line-height: 1.45; }
.card-row strong { display: block; min-width: 0; color: var(--ink); font-size: .68rem; font-weight: 700; line-height: 1.35; }
.card-row time, .card-row small { display: block; color: var(--muted); font-size: .59rem; line-height: 1.4; }
.card-current { min-height: 0; }
.card-current-actor { display: grid; gap: .22rem; margin-top: .14rem; }
.card-current-actor .card-sub-label { color: var(--muted); font-size: .48rem; letter-spacing: .1em; }
.card-actor { display: flex; min-width: 0; align-items: center; gap: .45rem; }
.card-actor > i { display: grid; width: 25px; height: 25px; min-width: 25px; place-items: center; margin: 0; font-style: normal; }
.card-actor-mark { display: grid; width: 25px; height: 25px; min-width: 25px; place-items: center; overflow: hidden; border: 1px solid rgba(185,134,61,.38); border-radius: 50%; color: var(--navy); background: rgba(247,244,238,.94); font-size: .42rem; font-weight: 800; line-height: 1.05; text-align: center; }
.card-actor-mark.identity-logo { object-fit: contain; padding: .18rem; }
.card-actor > span { display: grid; min-width: 0; gap: .08rem; }
.card-actor strong { overflow: hidden; font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
.card-actor small { color: var(--teal); font-size: .54rem; font-weight: 800; }
.card-window { min-height: 0; border-top-color: rgba(185,134,61,.68); background: rgba(185,134,61,.055); }
.card-window .card-row-label { color: var(--gold); }
.card-window strong { color: var(--ink); }
.card-watch { min-height: 0; border-top-style: dashed; }
.card-watch .card-row-label { color: var(--gold); }
.card-actor-row { min-height: 0; }
.card-actor-row .card-current-actor { margin-top: 0; }
.card-last { min-height: 0; }
.card-next { min-height: 0; border-top-style: dashed; }
.card-next .card-row-label { color: var(--ink-soft); }
.area-topics .topic-card > .arrow-link { align-self: end; margin-top: .85rem; font-size: .7rem; }
.map-expansion-toggle .disclosure-icon { transition: transform .2s ease; }
.map-expansion-toggle .disclosure-icon.is-open { transform: rotate(90deg); }

@media (max-width: 780px) {
  .area-topics .topic-card { display: flex; flex-direction: column; min-height: 0; padding: 1.1rem 1rem 1rem; }
  .area-topics .topic-card h2 { min-height: 0; font-size: 1.42rem; }
  .card-current, .card-window, .card-watch, .card-actor-row, .card-last, .card-next { min-height: 0; }
  .card-row-placeholder { display: none; }
  .area-topics .topic-card > .arrow-link { margin-top: auto; }
}

/* The disclosure is a single sentence plus an affordance in V3.14.  Keep
   the control compact at desktop and mobile instead of reserving a legacy
   count column. */
.stakeholder-map-v311 .map-secondary-disclosure .map-expansion-toggle { grid-template-columns: 1fr auto; }
.stakeholder-map-v311 .map-secondary-disclosure .map-expansion-toggle span:nth-child(2) { color: var(--ink-soft); font-size: .57rem; }
.stakeholder-map-v311 .map-secondary-disclosure .map-expansion-toggle .disclosure-icon { color: var(--gold); font-size: .9rem; }

/* V3.16: institution profiles are longitudinal policy nodes.  The surface
   stays typographic and evidence-led; no institutional hero image is reused. */
.institution-v4-page {
  min-height: 70vh;
  background: var(--cream, #fbfaf7);
  color: var(--ink, #142c45);
}
.institution-v4-hero {
  display: flex;
  width: min(1280px, calc(100% - 104px));
  align-items: flex-end;
  justify-content: space-between;
  gap: 3rem;
  margin: 0 auto;
  padding: 3.8rem 0 3rem;
  border-bottom: 1px solid var(--line, rgba(20,44,69,.14));
}
.institution-v4-identity { display: grid; grid-template-columns: 104px minmax(0, 1fr); align-items: start; gap: 1.65rem; max-width: 830px; }
.institution-v4-mark { display: grid; width: 104px; height: 104px; place-items: center; border: 1px solid rgba(185,134,61,.32); border-radius: 50%; background: rgba(255,255,255,.66); box-shadow: 0 10px 24px rgba(20,44,69,.07); }
.institution-v4-logo { width: 72px; height: 72px; object-fit: contain; }
.institution-v4-monogram { color: var(--navy, #0c2740); font-family: Georgia, serif; font-size: 1.7rem; letter-spacing: .05em; }
.institution-v4-hero h1 { max-width: 760px; margin: .2rem 0 .45rem; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2.45rem, 5vw, 4.75rem); font-weight: 400; letter-spacing: -.04em; line-height: .98; }
.institution-v4-acronym { margin: 0; color: var(--gold, #b9863d); font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.institution-v4-description { max-width: 650px; margin: .8rem 0 0; color: var(--ink-soft, #294463); font-size: 1.04rem; line-height: 1.55; }
.institution-v4-facts, .institution-v4-role-chips { display: flex; flex-wrap: wrap; gap: .45rem .65rem; margin-top: 1rem; }
.institution-v4-facts span { color: var(--muted, #657287); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; }
.institution-v4-facts span + span::before { content: '·'; margin-right: .65rem; color: var(--gold, #b9863d); }
.institution-v4-role-chips span { padding: .33rem .55rem; border: 1px solid rgba(20,141,120,.24); border-radius: 99px; color: var(--teal, #148d78); background: rgba(225,241,235,.44); font-size: .66rem; font-weight: 800; }
.institution-v4-parent { margin: 1.1rem 0 0; color: var(--muted, #657287); font-size: .76rem; }
.institution-v4-parent a { color: var(--navy, #0c2740); text-decoration: underline; text-decoration-color: rgba(185,134,61,.5); text-underline-offset: .18em; }
.institution-v4-hero-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .6rem; }
.institution-v4-link { display: inline-flex; align-items: center; min-height: 42px; padding: .65rem .9rem; border: 1px solid rgba(185,134,61,.45); color: var(--navy, #0c2740); background: rgba(255,255,255,.54); font-size: .72rem; font-weight: 800; text-decoration: none; }
.institution-v4-main { width: min(1280px, calc(100% - 104px)); margin: 0 auto; padding: 2.7rem 0 5rem; }
.institution-v4-section { padding: 2.25rem 0; border-bottom: 1px solid var(--line, rgba(20,44,69,.14)); }
.institution-v4-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.institution-v4-section-heading h2 { margin: .25rem 0 0; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.7rem, 3vw, 2.35rem); font-weight: 400; letter-spacing: -.025em; }
.institution-v4-section-heading > span { color: var(--gold, #b9863d); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.institution-v4-section-intro { max-width: 650px; margin: -.45rem 0 1.15rem; color: var(--muted, #657287); font-size: .82rem; line-height: 1.55; }
.institution-v4-capacity-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 1.6rem; padding: 1.25rem 1.4rem; border: 1px solid rgba(185,134,61,.22); background: rgba(255,255,255,.48); }
.institution-v4-capacity-label { margin: 0 0 .45rem; color: var(--gold, #b9863d); font-size: .68rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.institution-v4-capacity-grid p:not(.institution-v4-capacity-label) { max-width: 540px; margin: 0; color: var(--ink-soft, #294463); font-size: .94rem; line-height: 1.55; }
.institution-v4-capacity-grid ul { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.institution-v4-capacity-grid li { padding-left: 1.25rem; color: var(--ink-soft, #294463); font-size: .79rem; line-height: 1.45; }
.institution-v4-capacity-grid li::before { content: '✓'; display: inline-block; width: 1rem; margin-left: -1.25rem; color: var(--teal, #148d78); font-weight: 900; }
.institution-v4-dossier-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.institution-v4-dossier-card { display: flex; min-width: 0; flex-direction: column; min-height: 285px; padding: 1.25rem 1.25rem 1.05rem; border: 1px solid rgba(20,44,69,.14); background: rgba(255,255,255,.64); box-shadow: 0 8px 22px rgba(20,44,69,.035); }
.institution-v4-dossier-card.is-historical { min-height: 225px; }
.institution-v4-dossier-meta { display: flex; justify-content: space-between; gap: .7rem; color: var(--gold, #b9863d); font-size: .59rem; font-weight: 800; letter-spacing: .08em; line-height: 1.35; text-transform: uppercase; }
.institution-v4-dossier-meta span:last-child { color: var(--teal, #148d78); text-align: right; }
.institution-v4-dossier-card h3 { margin: .95rem 0 .65rem; font-family: Georgia, 'Times New Roman', serif; font-size: 1.55rem; font-weight: 400; letter-spacing: -.025em; line-height: 1.08; }
.institution-v4-dossier-role { margin: 0 0 .7rem; color: var(--navy, #0c2740); font-size: .74rem; font-weight: 800; line-height: 1.4; }
.institution-v4-phase-line, .institution-v4-intervention { margin: .45rem 0 0; color: var(--ink-soft, #294463); font-size: .72rem; line-height: 1.43; }
.institution-v4-phase-line b, .institution-v4-intervention b { display: block; margin-bottom: .12rem; color: var(--muted, #657287); font-size: .56rem; letter-spacing: .09em; text-transform: uppercase; }
.institution-v4-phase-line.is-expected { color: var(--gold, #9e6f2a); }
.institution-v4-intervention { padding-top: .65rem; border-top: 1px solid rgba(20,44,69,.1); }
.institution-v4-card-actions { display: flex; flex-wrap: wrap; gap: .5rem .9rem; margin-top: auto; padding-top: 1.1rem; }
.institution-v4-card-actions a { color: var(--gold, #9e6f2a); font-size: .68rem; font-weight: 800; text-decoration: none; }
.institution-v4-intervention-map { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .65rem; }
.institution-v4-intervention-map span { display: grid; min-height: 78px; align-content: center; gap: .35rem; padding: .75rem; border: 1px solid rgba(20,44,69,.13); color: var(--muted, #657287); background: rgba(255,255,255,.42); font-size: .7rem; font-weight: 800; line-height: 1.25; }
.institution-v4-intervention-map span i { width: 8px; height: 8px; border: 1px solid var(--gold, #b9863d); border-radius: 50%; background: transparent; }
.institution-v4-intervention-map span.is-observed { border-color: rgba(20,141,120,.35); color: var(--teal, #148d78); background: rgba(225,241,235,.42); }
.institution-v4-intervention-map span.is-observed i { border-color: var(--teal, #148d78); background: var(--teal, #148d78); }
.institution-v4-intervention-map small { color: var(--muted, #657287); font-size: .56rem; font-weight: 600; }
.institution-v4-activity { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(20,44,69,.12); }
.institution-v4-activity li { display: grid; grid-template-columns: 118px minmax(0, 1fr) auto; gap: 1rem; align-items: start; padding: .95rem 0; border-bottom: 1px solid rgba(20,44,69,.1); }
.institution-v4-activity time { color: var(--gold, #9e6f2a); font-size: .67rem; font-weight: 800; }
.institution-v4-activity li div { display: grid; gap: .25rem; }
.institution-v4-activity strong { color: var(--navy, #0c2740); font-size: .82rem; line-height: 1.35; }
.institution-v4-activity li div span { color: var(--muted, #657287); font-size: .72rem; line-height: 1.4; }
.institution-v4-activity li div a, .institution-v4-evidence { color: var(--gold, #9e6f2a); font-size: .66rem; font-weight: 800; text-decoration: none; }
.institution-v4-network { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.institution-v4-network a { display: grid; gap: .3rem; min-height: 118px; padding: 1rem; border: 1px solid rgba(20,44,69,.13); color: inherit; background: rgba(255,255,255,.5); text-decoration: none; }
.institution-v4-network-label { color: var(--gold, #9e6f2a); font-size: .58rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.institution-v4-network strong { color: var(--navy, #0c2740); font-family: Georgia, 'Times New Roman', serif; font-size: 1.12rem; font-weight: 400; line-height: 1.15; }
.institution-v4-network small { align-self: end; color: var(--muted, #657287); font-size: .64rem; }
.institution-v4-history { border-bottom: 0; }
.explorer-actor-node[hidden] { display: none; }
.explorer-secondary-toggle { display: block; margin: 1rem auto 0; padding: .65rem .85rem; border: 1px solid rgba(185,134,61,.45); color: var(--gold, #9e6f2a); background: rgba(255,255,255,.56); font-size: .69rem; font-weight: 800; cursor: pointer; }
.topic-evidence-more, .topic-related { margin-top: .65rem; border-top: 1px solid rgba(20,44,69,.11); }
.topic-evidence-more summary, .topic-related summary { padding: .65rem 0; color: var(--gold, #9e6f2a); font-size: .68rem; font-weight: 800; cursor: pointer; list-style: none; }
.topic-evidence-more summary::-webkit-details-marker, .topic-related summary::-webkit-details-marker { display: none; }
.topic-evidence-more summary::after, .topic-related summary::after { content: '＋'; float: right; }
.topic-evidence-more[open] summary::after, .topic-related[open] summary::after { content: '−'; }
.topic-related summary { display: grid; gap: .25rem; }
.topic-related summary .eyebrow { margin: 0; }
.topic-related summary strong { color: var(--ink, #142c45); font-family: Georgia, 'Times New Roman', serif; font-size: 1.2rem; font-weight: 400; }
.topic-related .muted-link { display: inline-block; margin-top: .8rem; }

@media (max-width: 900px) {
  .institution-v4-hero, .institution-v4-main { width: calc(100% - 48px); }
  .institution-v4-dossier-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .institution-v4-intervention-map { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .institution-v4-network { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .institution-v4-hero { display: grid; gap: 1.4rem; padding: 2.1rem 0 1.8rem; }
  .institution-v4-identity { grid-template-columns: 64px minmax(0, 1fr); gap: .9rem; }
  .institution-v4-mark { width: 64px; height: 64px; }
  .institution-v4-logo { width: 46px; height: 46px; }
  .institution-v4-monogram { font-size: 1.2rem; }
  .institution-v4-hero h1 { font-size: 2.45rem; }
  .institution-v4-description { font-size: .86rem; }
  .institution-v4-facts { display: block; line-height: 1.7; }
  .institution-v4-facts span { display: inline; }
  .institution-v4-facts span + span::before { margin-right: .4rem; }
  .institution-v4-hero-actions { justify-content: flex-start; }
  .institution-v4-link { min-height: 38px; font-size: .66rem; }
  .institution-v4-main { padding-top: 1.35rem; }
  .institution-v4-section { padding: 1.55rem 0; }
  .institution-v4-section-heading { align-items: flex-start; flex-direction: column; gap: .45rem; }
  .institution-v4-capacity-grid, .institution-v4-dossier-grid, .institution-v4-network { grid-template-columns: 1fr; }
  .institution-v4-capacity-grid { gap: 1rem; padding: 1rem; }
  .institution-v4-dossier-card, .institution-v4-dossier-card.is-historical { min-height: 0; }
  .institution-v4-intervention-map { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .institution-v4-intervention-map span { min-height: 70px; padding: .65rem; }
  .institution-v4-activity li { grid-template-columns: 1fr; gap: .35rem; }
  .institution-v4-evidence { justify-self: start; }
  .topic-evidence-more:not([open]) > *:not(summary) { display: none; }
}

/* V3.17: consolidate the institution surface around the current dossier. */
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.institution-v4-breadcrumb { width: min(1280px, calc(100% - 104px)); margin: 0 auto; padding-top: 1.25rem; }
.institution-v4-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 1.25rem 2rem; padding: 1.4rem 0 1.8rem; }
.institution-v4-hero h1 { font-size: clamp(2.35rem, 4.4vw, 3.7rem); }
.institution-v4-description { max-width: 760px; margin-top: .55rem; font-size: .93rem; line-height: 1.45; }
.institution-v4-role-chips { gap: .35rem; margin-top: .75rem; }
.institution-v4-role-chips span { padding: .28rem .52rem; font-size: .6rem; letter-spacing: .06em; }
.institution-v4-capacity-inline { display: flex; flex-wrap: wrap; gap: .35rem .6rem; max-width: 760px; margin: .75rem 0 0; color: var(--muted, #657287); font-size: .74rem; line-height: 1.45; }
.institution-v4-capacity-inline b { color: var(--navy, #0c2740); font-size: .63rem; letter-spacing: .08em; text-transform: uppercase; }
.institution-v4-main { padding-top: 1.7rem; }
.institution-v4-section { padding: 1.55rem 0; }
.institution-v4-agenda { padding-top: 0; }
.institution-v4-section-heading { margin-bottom: .9rem; }
.institution-v4-section-heading h2 { font-size: clamp(1.55rem, 2.7vw, 2.05rem); }
.institution-v4-dossier-grid { gap: .8rem; }
.institution-v4-dossier-card, .institution-v4-dossier-card.is-historical { min-height: 0; padding: 1rem 1.05rem .9rem; }
.institution-v4-dossier-card h3 { margin: .7rem 0 .55rem; font-size: 1.3rem; }
.institution-v4-dossier-role-label { margin: 0 0 .18rem; color: var(--muted, #657287); font-size: .56rem; letter-spacing: .09em; text-transform: uppercase; }
.institution-v4-dossier-role { display: block; color: var(--navy, #0c2740); font-size: .72rem; letter-spacing: .08em; line-height: 1.35; }
.institution-v4-phase-line { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: .25rem; margin: .55rem .35rem 0 0; padding: .28rem .42rem; border: 1px solid rgba(20,141,120,.22); border-radius: 999px; background: rgba(225,241,235,.32); font-size: .63rem; }
.institution-v4-phase-line.is-expected { border-style: dashed; border-color: rgba(158,111,42,.38); background: rgba(185,134,61,.06); }
.institution-v4-phase-line b { display: inline; margin: 0; font-size: .52rem; }
.institution-v4-intervention { padding-top: .55rem; }
.institution-v4-card-actions { gap: .35rem .7rem; padding-top: .85rem; }
.institution-v4-card-actions a { font-size: .63rem; }
.institution-v4-intervention-map { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; }
.institution-v4-intervention-map span { min-height: 62px; padding: .65rem; font-size: .64rem; }
.institution-v4-intervention-map span.is-structural { border-style: dashed; }
.institution-v4-observed-note { margin: .75rem 0 0; color: var(--teal, #148d78); font-size: .64rem; line-height: 1.45; }
.institution-v4-observed-note b { margin-right: .35rem; font-size: .55rem; letter-spacing: .08em; }
.institution-v4-intervention-bullets { display: grid; gap: .45rem; margin: .8rem 0 0; padding: 0; list-style: none; }
.institution-v4-intervention-bullets li { padding-left: 1rem; color: var(--ink-soft, #294463); font-size: .72rem; line-height: 1.4; }
.institution-v4-intervention-bullets li::before { content: '•'; display: inline-block; width: 1rem; margin-left: -1rem; color: var(--teal, #148d78); font-weight: 900; }
.institution-v4-activity-network { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 2rem; }
.institution-v4-activity-network > .institution-v4-section { min-width: 0; padding: 0; border: 0; }
.institution-v4-activity-network .institution-v4-section-heading { margin-bottom: .8rem; }
.institution-v4-activity li { grid-template-columns: 94px minmax(0, 1fr) auto; gap: .7rem; padding: .7rem 0; }
.institution-v4-activity strong { font-size: .74rem; }
.institution-v4-activity li div span { font-size: .65rem; }
.institution-v4-activity li div a, .institution-v4-evidence { font-size: .6rem; }
.institution-v4-activity-more { margin-top: .7rem; border-top: 1px solid rgba(20,44,69,.12); }
.institution-v4-activity-more summary, .institution-v4-more > summary { padding: .7rem 0; color: var(--gold, #9e6f2a); font-size: .66rem; font-weight: 800; cursor: pointer; list-style: none; }
.institution-v4-activity-more summary::-webkit-details-marker, .institution-v4-more > summary::-webkit-details-marker { display: none; }
.institution-v4-activity-more summary span, .institution-v4-more > summary span { float: right; font-size: .9rem; }
.institution-v4-network { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.institution-v4-network a { min-height: 94px; padding: .75rem; }
.institution-v4-network strong { font-size: .98rem; }
.institution-v4-network small { font-size: .58rem; }
.institution-v4-more { padding: 0; border-bottom: 0; }
.institution-v4-more-metadata, .institution-v4-more-links { padding: 1rem 0; border-top: 1px solid var(--line, rgba(20,44,69,.14)); }
.institution-v4-more-links { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.institution-v4-more-links a { color: var(--gold, #9e6f2a); font-size: .68rem; font-weight: 800; text-decoration: none; }
.institution-v4-more-metadata p { margin: 0; color: var(--muted, #657287); font-size: .68rem; line-height: 1.5; }
.institution-v4-more-metadata b { color: var(--navy, #0c2740); }

@media (max-width: 900px) {
  .institution-v4-breadcrumb { width: calc(100% - 48px); }
  .institution-v4-activity-network { grid-template-columns: 1fr; gap: 1.3rem; }
}

@media (max-width: 640px) {
  .institution-v4-breadcrumb { width: calc(100% - 32px); padding-top: .9rem; }
  .institution-v4-hero { width: calc(100% - 32px); padding-top: 1.1rem; }
  .institution-v4-main { width: calc(100% - 32px); padding-top: 1.2rem; }
  .institution-v4-capacity-inline { display: grid; gap: .2rem; }
  .institution-v4-intervention-map { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .institution-v4-activity-network { gap: 1rem; }
  .institution-v4-network { grid-template-columns: 1fr; }
  .institution-v4-activity li { grid-template-columns: 1fr; gap: .25rem; }
  .institution-v4-evidence { justify-self: start; }
}

/* V3.21 final cascade: keep textual identities contained and give the
   consolidated profile its full mobile reading width. */
.institution-v4-mark {
  overflow: hidden;
  box-sizing: border-box;
  padding: .35rem;
}
.institution-v4-logo {
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
}
.institution-v4-monogram {
  display: block;
  max-width: 100%;
  overflow-wrap: anywhere;
  text-align: center;
  font-size: .9rem;
  line-height: 1.05;
}
/* The cached official EEA SVG has a tall export canvas around its compact
   rosette. Crop only that asset so the official mark remains legible. */
img[src$="/eea.svg"] {
  object-fit: cover !important;
}
img[src$="/eea-cropped.svg"] {
  object-fit: contain !important;
}
img[src$="/eea-cropped.png"] {
  object-fit: contain !important;
}
@media (max-width: 640px) {
  .institution-v4-identity { display: block; }
  .institution-v4-mark { width: 64px; height: 64px; margin-bottom: .9rem; }
  .institution-v4-identity > div:last-child { min-width: 0; }
  .institution-v4-hero h1 { max-width: none; font-size: clamp(2.15rem, 10vw, 3rem); line-height: 1.04; }
  .institution-v4-monogram { font-size: .62rem; }
}
