/* Styles of the AIFMD module (public/js/modules/aifmd). Loaded after css/app.css. */

/* ------------------------------------------------------ AIFMD forms -- */
.rank-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
.rank-row { display: grid; grid-template-columns: 2rem 1fr; gap: 0.75rem; align-items: start; padding: 0.75rem 0; border-top: 1px solid var(--line-soft); }
.rank-row:first-child { border-top: 0; }
.rank-number { display: inline-flex; align-items: center; justify-content: center; width: 1.8rem; height: 1.8rem; margin-top: 1.6rem; border-radius: 50%; background: var(--mist); font-weight: 600; font-size: var(--step--1); }
.rank-fields .grid + .grid { margin-top: 0.75rem; }
.computed-rate { margin: 0.4rem 0 0; font-size: var(--step--1); }
.list-editor { display: grid; gap: 0.75rem; justify-items: start; }
.list-row { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 0.75rem; align-items: start; padding: 0.75rem; background: var(--mist); border-radius: var(--r-s); }
.list-remove { margin-top: 1.6rem; }
.export-row { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 0.5rem 0; border-bottom: 1px solid var(--line-soft); }
.export-status { font-size: var(--step--1); }
.computed-list { margin: 0; padding-left: 1.4rem; display: grid; gap: 0.35rem; }
.computed-list li > span.num { margin-left: 1rem; font-variant-numeric: tabular-nums; color: var(--slate); }
.aifmd-cell { display: flex; gap: 0.75rem; align-items: center; justify-content: space-between; }
.aifm-source { margin: 0 0 1rem; padding: 0.75rem 1rem; background: var(--mist); border-radius: var(--r-s); }
.aifm-source p { margin: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 0.6rem; align-items: center; }

/* ----------------------------------------------- AIFMD geographical focus -- */
.geo-layout { display: grid; grid-template-columns: minmax(25rem, 1fr) minmax(0, 1.25fr); gap: 1.5rem; align-items: start; }
@media (max-width: 1100px) { .geo-layout { grid-template-columns: minmax(0, 1fr); } }
.geo-table { width: 100%; border-collapse: collapse; font-size: var(--step--1); table-layout: fixed; }
.geo-table .geo-col-num { width: 7rem; }
.geo-table td .field-msg { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.geo-cell-messages { list-style: none; margin: 0.4rem 0 0; padding: 0; color: var(--error); font-size: var(--step--1); }
.geo-cell-messages:empty { display: none; }
.geo-messages .field-group { margin: 0.4rem 0 0; }
.geo-messages .label-row { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.geo-messages .field-msg:empty { display: none; }
.geo-table th, .geo-table td { padding: 0.2rem 0.4rem; border-bottom: 1px solid var(--line-soft); vertical-align: middle; text-align: left; font-weight: 500; }
.geo-table thead th { color: var(--slate); font-weight: 600; }
.geo-table tfoot th, .geo-table tfoot td { border-bottom: 0; font-weight: 600; padding-top: 0.5rem; }
.geo-table .field { margin: 0; }
.geo-table .field .label-row { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.geo-table .field .hint:empty { display: none; }
.geo-table input { width: 100%; min-height: 2rem; padding: 0.2rem 0.5rem; text-align: right; font-variant-numeric: tabular-nums; }
.geo-table td .field-msg:empty { display: none; }
.geo-table .field-group { align-items: flex-end; }
.geo-total-ok { color: var(--green); }
.geo-total-off { color: var(--error); }
.geo-map { margin: 0; display: grid; gap: 0.6rem; justify-items: start; }
.geo-map-slot { width: 100%; }
.geo-svg { width: 100%; height: auto; display: block; }
.geo-region { stroke: #fff; stroke-width: 0.8; }
.geo-label { font: 700 19px/1 var(--font-sans, system-ui, sans-serif); fill: var(--ink); paint-order: stroke; stroke: rgb(255 255 255 / 0.85); stroke-width: 3px; stroke-linejoin: round; }
.geo-label-dark { fill: #fff; stroke: rgb(8 50 41 / 0.6); }

/* ------------------------------------------- AIFMD compact file forms -- */
.form-nav { position: sticky; top: var(--topbar); z-index: 5; display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0 0 1rem; padding: 0.5rem 0; background: var(--mist); }
.form-nav button { border: 1px solid var(--line); background: var(--paper); color: var(--ink-2); border-radius: 999px; padding: 0.2rem 0.75rem; font: inherit; font-size: var(--step--1); cursor: pointer; display: inline-flex; gap: 0.35rem; align-items: center; }
.form-nav button:hover { border-color: var(--green); color: var(--green); }
.form-nav button.has-errors { border-color: var(--error); color: var(--error); }
.form-nav .nav-count { background: var(--error); color: #fff; border-radius: 999px; padding: 0 0.4rem; font-size: 0.72rem; font-weight: 600; }
.form-section { scroll-margin-top: calc(var(--topbar) + 3.5rem); }
.form-section h2:focus { outline: none; }
.subsection { font-size: var(--step-0, 1rem); margin: 1.25rem 0 0.6rem; }
.grid-tight { gap: 0.5rem 0.75rem; }
.compact-table, .geo-table { width: 100%; border-collapse: collapse; font-size: var(--step--1); table-layout: fixed; }
.compact-table th, .compact-table td { padding: 0.25rem 0.4rem; border-bottom: 1px solid var(--line-soft); vertical-align: top; text-align: left; }
.compact-table thead th { color: var(--slate); font-weight: 600; white-space: nowrap; }
.compact-table tfoot th, .compact-table tfoot td { border-bottom: 0; font-weight: 600; padding-top: 0.5rem; }
.compact-table .field { margin: 0; min-width: 0; }
.compact-table .field .label-row { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.compact-table .field .hint { display: none; }
.compact-table .field-msg:empty { display: none; }
.compact-table input, .compact-table select, .compact-table textarea { min-height: 2rem; padding: 0.2rem 0.45rem; font-size: var(--step--1); width: 100%; min-width: 6rem; }
.compact-table select { min-width: 10rem; max-width: 18rem; }
.compact-table .num input, .compact-table .amount-input { text-align: right; font-variant-numeric: tabular-nums; }
.compact-table td.num, .compact-table th.num { text-align: right; }
.compact-table .narrow input, .compact-table .narrow select { min-width: 4.5rem; width: 5.5rem; }
.compact-table td.narrow select { min-width: 4.5rem; }
.compact-table .center { text-align: center; }
.compact-table .field-check { justify-content: center; min-height: 2rem; }
.compact-table .field-check label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.compact-table input[type='checkbox'] { width: auto; min-width: 0; min-height: 0; }
.compact-table .rank-cell { width: 1.8rem; color: var(--slate); font-weight: 600; padding-top: 0.6rem; }
.compact-table .remove-cell { width: 2.5rem; text-align: right; }
.compact-table tr.sub-row td { border-bottom: 1px solid var(--line-soft); background: var(--mist); padding: 0.5rem; }
.compact-table tbody tr:has(+ tr.sub-row:not([hidden])) td { border-bottom: 0; }
.compact-table .computed { display: inline-block; padding-top: 0.4rem; color: var(--slate); font-variant-numeric: tabular-nums; }
.compact-table .cell-note { margin: 0.2rem 0 0; font-size: 0.72rem; }
.compact-table .btn-link { padding-top: 0.4rem; }
.list-table { display: grid; gap: 0.6rem; justify-items: start; margin-bottom: 0.75rem; }
.list-table .table-wrap { width: 100%; }
.total-ok { color: var(--green); }
.total-off { color: var(--error); }
.compact-table tr.sub-row .field .label-row { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; }
.compact-table tr.sub-row .field .hint { display: block; }
.compact-table tr.fold-row td { border-bottom: 0; padding: 0.4rem; }
.compact-table td:has(> .field input:not([type='checkbox'])):not(.num) { min-width: 9rem; }
.field-with-note { display: grid; gap: 0.2rem; align-content: start; }
.gleif-note { margin: 0; font-size: 0.75rem; }
.gleif-note:empty { display: none; }
.ecb-line { display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: center; margin: 0.25rem 0 0; }
.compare-table { width: 100%; border-collapse: collapse; font-size: var(--step--1); }
.compare-table th, .compare-table td { padding: 0.3rem 0.5rem; border-bottom: 1px solid var(--line-soft); text-align: left; vertical-align: top; }
.compare-table td.num { text-align: right; white-space: nowrap; }
.dash-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: 0.75rem; margin: 0 0 1rem; }
.dash-tile { display: grid; gap: 0.15rem; padding: 0.75rem 1rem; border: 1px solid var(--line); border-radius: var(--r-m, 8px); background: var(--paper); }
.dash-tile strong { font-family: var(--font-head); font-size: 1.6rem; line-height: 1; }
.dash-tile span { color: var(--slate); font-size: var(--step--1); }
.dash-tile.tone-error strong { color: var(--error); }
.dash-tile.tone-warning strong { color: var(--st-changed, #a86200); }
.fund-groups { display: grid; gap: 1rem; }
.umbrella-group { display: grid; gap: 0.5rem; }
.umbrella-head { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: baseline; }
.umbrella-head .btn-link { font-weight: 600; }
.change-period { margin: 0.4rem 0 0; }
.facts-list { display: grid; gap: 0.4rem; margin: 0.5rem 0 0; padding: 0.9rem 1.1rem; background: var(--mist); border-radius: var(--r-s); }
.facts-list .fact-row { display: grid; grid-template-columns: 11rem 1fr; gap: 1rem; }
.facts-list dt { color: var(--slate); font-weight: 600; font-size: var(--step--1); }
.facts-list dd { margin: 0; }
.geo-table tbody th { white-space: normal; padding-right: 0.75rem; }
