/* ── Master page overrides ── */
.MainContentArea {
    padding: 0 !important;
    display: block !important;
}

.def-form {
    margin: 0;
}

body {
    background: #0a0c10 !important;
}

/* ─────────────────────────────────────
   MF PRO — design system
   Type:    IBM Plex Sans + JetBrains Mono
   Surface: deep charcoal panels
   Color:   muted pos/neg, single cyan accent
───────────────────────────────────────── */
:root {
    --bg: #0a0c10;
    --bg-1: #10131a;
    --bg-2: #161a23;
    --bg-3: #1c2230;
    --line: #232936;
    --line-soft: #1a1f2a;
    --line-strong: #2e3647;
    --fg: #e6e8ee;
    --fg-2: #b7bcc8;
    --fg-3: #7e8595;
    --fg-4: #555c6c;
    --fg-5: #3a3f48;
    --pos: oklch(0.78 0.13 155);
    --pos-soft: oklch(0.78 0.13 155 / 0.12);
    --neg: oklch(0.70 0.18 25);
    --neg-soft: oklch(0.70 0.18 25 / 0.14);
    --accent: oklch(0.80 0.11 215);
    --accent-soft: oklch(0.80 0.11 215 / 0.14);
    --accent-line: oklch(0.80 0.11 215 / 0.40);
    --radius-sm: 4px;
    --radius: 6px;
    --radius-lg: 10px;
    --font-sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;
    --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
}

#mfpro-root * {
    box-sizing: border-box;
}

#mfpro-root {
    font-family: var(--font-sans);
    font-size: 13px;
    line-height: 1.4;
    -webkit-font-smoothing: antialiased;
    background: var(--bg);
    color: var(--fg);
}

#mfpro-root ::-webkit-scrollbar {
    width: 9px;
    height: 9px;
}

#mfpro-root ::-webkit-scrollbar-track {
    background: transparent;
}

#mfpro-root ::-webkit-scrollbar-thumb {
    background: #242a36;
    border-radius: 6px;
}

#mfpro-root ::-webkit-scrollbar-thumb:hover {
    background: #2e3647;
}

.mfp-mono {
    font-family: var(--font-mono);
    font-feature-settings: "tnum" 1;
}

/* ── Sub-header ── */
.mfp-subhead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 18px 9px;
    border-bottom: 1px solid var(--line);
    gap: 16px;
    flex-wrap: wrap;
    background: var(--bg-1);
}

.mfp-subhead-left {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.mfp-page-title {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.mfp-page-sub {
    color: var(--fg-3);
    font-weight: 400;
    font-size: 13px;
}

.mfp-seg {
    display: inline-flex;
    align-items: center;
    background: var(--bg-1);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 2px;
}

.mfp-seg-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--fg-3);
    font-family: var(--font-sans);
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 4px;
    transition: all 0.12s;
}

.mfp-seg-btn.sm {
    font-size: 11.5px;
    padding: 4px 8px;
}

.mfp-seg-btn:hover {
    color: var(--fg);
}

.mfp-seg-btn.on {
    background: var(--bg-3);
    color: var(--fg);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04);
}

.mfp-subhead-right {
    display: flex;
    align-items: center;
    gap: 10px;
}

.mfp-sync-stamp {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    color: var(--fg-3);
    font-family: var(--font-mono);
}

.mfp-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--fg-4);
    display: inline-block;
    flex-shrink: 0;
}

.mfp-dot.live {
    background: var(--pos);
    box-shadow: 0 0 0 2px oklch(0.78 0.13 155 / 0.15);
}

.mfp-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--bg-2);
    border: 1px solid var(--line);
    color: var(--fg-2);
    font-family: var(--font-sans);
    font-size: 12px;
    padding: 5px 11px;
    border-radius: var(--radius);
    cursor: pointer;
    transition: all 0.12s;
}

.mfp-btn:hover {
    background: var(--bg-3);
    color: var(--fg);
    border-color: var(--line-strong);
}

.mfp-btn.ghost {
    background: transparent;
}

.mfp-btn.primary {
    background: var(--accent-soft);
    color: var(--accent);
    border-color: var(--accent-line);
}

.mfp-btn.primary:hover {
    background: oklch(0.80 0.11 215 / 0.22);
}

/* ── Main grid ── */
.mfp-grid {
    display: grid;
    grid-template-columns: 260px 1fr 280px;
    height: calc(100vh - 80px - 53px);
    overflow: hidden;
}

/* ── Sidebar ── */
.mfp-side {
    background: var(--bg-1);
    border-right: 1px solid var(--line);
    overflow-y: auto;
    padding: 14px 0;
}

.mfp-side-section {
    padding: 0 14px 16px;
    border-bottom: 1px solid var(--line-soft);
    margin-bottom: 12px;
}

.mfp-side-section:last-child {
    border-bottom: none;
}

.mfp-side-h {
    font-size: 10.5px;
    color: var(--fg-4);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 10px;
    font-weight: 600;
}

.mfp-side-h.between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.mfp-link-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--accent);
    font-size: 11px;
    font-weight: 500;
}

.mfp-link-btn:hover {
    text-decoration: underline;
}

.mfp-stat-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: var(--line-soft);
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--line-soft);
}

.mfp-stat {
    padding: 9px 11px;
    background: var(--bg-2);
}

.mfp-stat-k {
    font-size: 10.5px;
    color: var(--fg-4);
    margin-bottom: 3px;
    letter-spacing: 0.02em;
}

.mfp-stat-v {
    font-size: 14.5px;
    color: var(--fg);
    font-weight: 500;
}

.mfp-stat-v.pos {
    color: var(--pos);
}

.mfp-stat-v.neg {
    color: var(--neg);
}

.mfp-bucket-row {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 6px 8px;
    margin: 1px 0;
    border-radius: var(--radius-sm);
    text-align: left;
    color: var(--fg-2);
    font-size: 12px;
}

.mfp-bucket-row:hover {
    background: var(--bg-2);
    color: var(--fg);
}

.mfp-bucket-row.active {
    background: var(--accent-soft);
    color: var(--fg);
}

.mfp-bucket-row.active .mfp-bucket-count {
    color: var(--accent);
}

.mfp-sw {
    width: 9px;
    height: 9px;
    border-radius: 2px;
    flex-shrink: 0;
}

.mfp-sw.pos-2 {
    background: oklch(0.78 0.13 155);
}

.mfp-sw.pos-1 {
    background: oklch(0.78 0.13 155 / 0.5);
}

.mfp-sw.neutral {
    background: var(--fg-4);
}

.mfp-sw.neg-1 {
    background: oklch(0.70 0.18 25 / 0.55);
}

.mfp-sw.neg-2 {
    background: oklch(0.70 0.18 25);
}

.mfp-bucket-label {
    flex: 1;
}

.mfp-bucket-count {
    color: var(--fg-3);
    font-size: 11.5px;
}

.mfp-tenure-row {
    display: grid;
    grid-template-columns: 38px 1fr 22px;
    align-items: center;
    gap: 8px;
    padding: 5px 0;
}

.mfp-tenure-k {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--fg-3);
}

.mfp-bar {
    height: 4px;
    background: var(--bg-3);
    border-radius: 2px;
    overflow: hidden;
}

.mfp-bar-fill {
    height: 100%;
    background: var(--accent);
    opacity: 0.7;
}

.mfp-tenure-v {
    font-size: 11.5px;
    color: var(--fg-2);
    text-align: right;
}

.mfp-saved-list {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.mfp-saved-item {
    display: flex;
    align-items: center;
    gap: 9px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 7px 8px;
    border-radius: var(--radius-sm);
    text-align: left;
    color: var(--fg-2);
    font-size: 12px;
}

.mfp-saved-item:hover {
    background: var(--bg-2);
    color: var(--fg);
}

.mfp-saved-item.active {
    background: var(--accent-soft);
    color: var(--fg);
}

.mfp-saved-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.mfp-saved-dot.ac {
    background: var(--accent);
}

.mfp-saved-dot.wh {
    background: #d6b15f;
}

.mfp-saved-dot.or {
    background: #d68b5f;
}

.mfp-saved-dot.pu {
    background: #9d7fd6;
}

.mfp-saved-count {
    margin-left: auto;
    color: var(--fg-4);
    font-size: 11px;
}

/* ── Center ── */
.mfp-center {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--bg);
}

.mfp-tab-row {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--line);
    background: var(--bg-1);
}

.mfp-tab {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--fg-3);
    font-size: 12.5px;
    padding: 6px 12px;
    border-radius: var(--radius);
}

.mfp-tab:hover {
    color: var(--fg);
}

.mfp-tab.on {
    color: var(--fg);
    background: var(--bg-3);
}

.mfp-tab-spacer {
    flex: 1;
}

.mfp-result-count {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    color: var(--fg-3);
}

.mfp-result-count .mfp-mono {
    color: var(--fg);
}

.mfp-clear-filter {
    background: var(--accent-soft);
    border: 1px solid var(--accent-line);
    color: var(--accent);
    cursor: pointer;
    font-size: 11px;
    padding: 3px 8px;
    border-radius: var(--radius-sm);
}

.mfp-table-wrap {
    flex: 1;
    overflow: auto;
}

.mfp-table-wrap.compact table td {
    padding: 5px 10px;
}

.mfp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}

.mfp-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--bg-1);
    color: var(--fg-4);
    font-weight: 500;
    font-size: 10.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: right;
    padding: 5px 8px;
    border-bottom: 1px solid var(--line);
}

.mfp-table thead th[style*="cursor"]:hover {
    color: var(--fg-2);
    background: var(--bg-2);
}

.mfp-table thead th.sort-active {
    color: var(--accent);
}

.mfp-table thead th.cl,
.mfp-table thead th.cn,
.mfp-table thead th.ct,
.mfp-table thead th.cc {
    text-align: left;
}

.mfp-table tbody tr {
    border-bottom: 1px solid var(--line-soft);
    cursor: pointer;
    transition: background 0.08s;
}

.mfp-table tbody tr:hover {
    background: var(--bg-1);
}

.mfp-table tbody tr.sel {
    background: var(--accent-soft);
}

.mfp-table td {
    padding: 4px 8px;
    vertical-align: middle;
    text-align: right;
}

.mfp-table td.cl,
.mfp-table td.cn,
.mfp-table td.ct,
.mfp-table td.cc {
    text-align: left;
}

.mfp-table td.cl {
    color: var(--fg-4);
    font-family: var(--font-mono);
    font-size: 11px;
    width: 32px;
}

.mfp-table td.cn {
    color: var(--fg);
    font-size: 11.5px;
    max-width: 280px;
}

.mfp-name-cell {
    display: flex;
    align-items: center;
    gap: 8px;
}

.mfp-name-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mfp-table td.cc {
    color: var(--fg-3);
    font-size: 12px;
}

.mfp-chip {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 10px;
    background: var(--bg-3);
    color: var(--fg-3);
    padding: 2px 6px;
    border-radius: 3px;
    letter-spacing: 0.02em;
}

.mfp-num {
    display: inline-block;
    font-family: var(--font-mono);
    padding: 2px 6px;
    border-radius: 3px;
    min-width: 52px;
    text-align: right;
}

.mfp-num.pos {
    color: oklch(0.85 0.14 155);
}

.mfp-num.neg {
    color: oklch(0.78 0.18 25);
}

.mfp-num.zero {
    color: var(--fg-5);
    background: transparent !important;
}

.heatmap-off .mfp-num {
    background: transparent !important;
}

.heatmap-off .mfp-num.pos {
    color: var(--pos);
}

.heatmap-off .mfp-num.neg {
    color: var(--neg);
}

.mfp-star-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--fg-5);
    padding: 4px;
    border-radius: 3px;
    display: grid;
    place-items: center;
}

.mfp-star-btn:hover {
    color: #d6b15f;
}

/* holding + weight cols */
.mfp-hold-val {
    display: inline-block;
    font-family: var(--font-mono);
    color: var(--fg);
    padding: 2px 7px;
    border-radius: 3px;
    background: oklch(0.80 0.11 215 / 0.10);
}

.mfp-weight-cell {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.mfp-weight-val {
    font-family: var(--font-mono);
    color: var(--fg-2);
    min-width: 44px;
    text-align: right;
}

.mfp-weight-bar {
    width: 56px;
    height: 4px;
    background: var(--bg-3);
    border-radius: 2px;
    overflow: hidden;
}

.mfp-weight-fill {
    height: 100%;
    background: var(--accent);
    opacity: 0.75;
}

/* ── Stock detail header ── */
.mfp-stock-detail {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) auto;
    gap: 24px;
    align-items: center;
    padding: 16px 18px;
    background: linear-gradient(180deg, oklch(0.80 0.11 215 / 0.06) 0%, transparent 100%), var(--bg-1);
    border-bottom: 1px solid var(--line);
}

.mfp-sd-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.mfp-sd-back {
    width: 30px;
    height: 30px;
    background: var(--bg-2);
    border: 1px solid var(--line);
    color: var(--fg-2);
    border-radius: var(--radius);
    cursor: pointer;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    transition: all 0.12s;
}

.mfp-sd-back:hover {
    background: var(--bg-3);
    color: var(--fg);
}

.mfp-sd-name h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.mfp-sd-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-size: 11.5px;
    color: var(--fg-3);
}

.mfp-sd-dot {
    color: var(--fg-5);
}

.mfp-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(140px, 200px));
    gap: 1px;
    background: var(--line-soft);
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--line-soft);
}

.mfp-metric {
    background: var(--bg-2);
    padding: 10px 14px;
    min-height: 68px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.mfp-m-label {
    font-size: 10.5px;
    color: var(--fg-4);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 500;
}

.mfp-m-value {
    margin-top: 5px;
    font-size: 17px;
    color: var(--fg);
    font-weight: 500;
    line-height: 1.1;
}

.mfp-m-value.text {
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mfp-m-value.mfp-mono {
    font-size: 17px;
}

.mfp-m-sub {
    margin-top: 6px;
    font-size: 11px;
    color: var(--fg-4);
}

.mfp-sd-loading {
    padding: 16px 18px;
    font-size: 12px;
    color: var(--fg-3);
    background: var(--bg-1);
    border-bottom: 1px solid var(--line);
}

/* ── Right panel ── */
.mfp-right {
    background: var(--bg-1);
    border-left: 1px solid var(--line);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.mfp-right-head {
    padding: 14px 14px 10px;
    border-bottom: 1px solid var(--line-soft);
}

.mfp-right-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 11px;
    color: var(--fg-3);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
}

.mfp-right-sub {
    font-size: 11.5px;
    color: var(--fg-4);
    margin-top: 4px;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
}

.mfp-right-search {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 7px 10px;
    margin: 10px 12px;
    background: var(--bg-2);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    color: var(--fg-3);
}

.mfp-right-search input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: var(--fg);
    font-size: 12px;
}

.mfp-right-search input::placeholder {
    color: var(--fg-4);
}

.mfp-stock-list {
    margin: 0;
    padding: 0 6px 14px;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.mfp-stock-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    background: transparent;
    border: none;
    padding: 7px 8px;
    border-radius: var(--radius-sm);
    font-size: 12px;
    color: var(--fg-2);
    cursor: pointer;
    transition: background 0.08s;
    font-family: var(--font-sans);
    text-align: left;
}

.mfp-stock-row:hover {
    background: var(--bg-2);
}

.mfp-stock-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
}

.mfp-held {
    font-size: 10.5px;
    background: var(--bg-3);
    color: var(--fg-3);
    padding: 1px 6px;
    border-radius: 3px;
    flex-shrink: 0;
}

.mfp-stock-row.sel {
    background: var(--accent-soft);
    box-shadow: inset 2px 0 0 var(--accent);
}

.mfp-stock-row.sel .mfp-stock-name {
    color: var(--fg);
}

/* ── Scheme detail ── */
.mfp-scheme-detail {
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow: hidden;
}

.mfp-sch-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 14px 7px;
    background: linear-gradient(180deg, oklch(0.80 0.11 215 / 0.06) 0%, transparent 100%), var(--bg-1);
    border-bottom: 1px solid var(--line-soft);
    flex-shrink: 0;
}

.mfp-sch-h-left {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    flex: 1;
    min-width: 0;
}

.mfp-sch-title-wrap {
    min-width: 0;
    flex: 1;
}

.mfp-sch-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.mfp-sch-title-row h2 {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.mfp-sch-cat-chip {
    font-size: 10px;
    background: var(--accent-soft);
    color: var(--accent);
    padding: 2px 6px;
    border-radius: 3px;
}

.mfp-sch-sub {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 3px;
    font-size: 11px;
    color: var(--fg-3);
}

.mfp-sch-sub strong {
    color: var(--fg-2);
    font-weight: 500;
}

.mfp-sch-h-right {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
    align-self: flex-start;
}

.mfp-sch-stats {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1px;
    background: var(--line);
    border-bottom: 1px solid var(--line);
    flex-shrink: 0;
}

.mfp-sch-stat {
    background: var(--bg-2);
    padding: 7px 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.mfp-sch-stat-label {
    font-size: 9.5px;
    color: var(--fg-3);
    letter-spacing: 0.07em;
    text-transform: uppercase;
    font-weight: 600;
}

.mfp-sch-stat-value {
    font-family: var(--font-mono);
    font-size: 14px;
    color: var(--fg);
    font-weight: 500;
    line-height: 1.2;
}

.mfp-sch-stat-value.pos {
    color: var(--pos);
}

.mfp-sch-stat-value.neg {
    color: var(--neg);
}

.mfp-sch-stat-sub {
    font-size: 10.5px;
    color: var(--fg-3);
}

.mfp-sch-stat-sub.pos {
    color: var(--pos);
}

.mfp-sch-stat-sub.neg {
    color: var(--neg);
}

.mfp-sch-tabs {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 4px 14px 0;
    border-bottom: 1px solid var(--line);
    background: var(--bg);
    flex-shrink: 0;
}

.mfp-sch-tab {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--fg-3);
    font-size: 12px;
    font-family: var(--font-sans);
    padding: 6px 12px;
    position: relative;
    display: flex;
    align-items: center;
    gap: 5px;
}

.mfp-sch-tab:hover {
    color: var(--fg);
}

.mfp-sch-tab.on {
    color: var(--fg);
}

.mfp-sch-tab.on::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 8px;
    right: 8px;
    height: 2px;
    background: var(--accent);
}

.mfp-dim {
    color: var(--fg-4);
    font-size: 11px;
}

.mfp-sch-content {
    flex: 1;
    overflow: auto;
}

.mfp-sch-loading {
    padding: 32px 20px;
    text-align: center;
    color: var(--fg-3);
    font-size: 13px;
}

/* Holdings inside scheme */
.mfp-sch-holdings-wrap {
    height: 100%;
    overflow: auto;
}

.mfp-sch-tbl thead th {
    background: var(--bg);
    padding: 5px 8px;
    font-size: 10px;
}

.mfp-sch-tbl td {
    padding: 3px 8px;
    font-size: 12px;
}

.mfp-sch-tbl td.cn {
    font-size: 11.5px;
}

.mfp-sch-tbl .c-sector {
    text-align: left;
    color: var(--fg-3);
    font-size: 11.5px;
}

.mfp-sch-tbl .mfp-weight-bar {
    width: 48px;
}

.mfp-sch-tbl .mfp-hold-val {
    padding: 1px 6px;
    font-size: 11.5px;
}

/* Rating stars */
.mfp-stars {
    color: #d6b15f;
    font-size: 11px;
    letter-spacing: 0.5px;
    line-height: 1;
}

/* Risk chip */
.mfp-risk-chip {
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 3px;
    background: var(--bg-3);
    white-space: nowrap;
}

/* Year-on-year heatmap */
.mfp-yr-grid {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}

.mfp-yr-cell {
    flex: 1;
    min-width: 54px;
    padding: 7px 8px;
    border-radius: var(--radius-sm);
    text-align: center;
}

.mfp-yr-label {
    font-size: 10px;
    color: var(--fg-4);
    margin-bottom: 4px;
}

.mfp-yr-val {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 500;
}

/* Alpha badge */
.mfp-alpha-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 11px;
    padding: 4px 10px;
    border-radius: var(--radius);
    border: 1px solid;
}

/* SIP view */
.mfp-sip-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1px;
    background: var(--line-soft);
    border: 1px solid var(--line-soft);
    border-radius: var(--radius);
    overflow: hidden;
    margin-bottom: 20px;
}

.mfp-sip-card {
    background: var(--bg-1);
    padding: 14px 16px;
}

.mfp-sip-label {
    font-size: 10.5px;
    color: var(--fg-4);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 500;
    margin-bottom: 6px;
}

.mfp-sip-val {
    font-family: var(--font-mono);
    font-size: 20px;
    font-weight: 500;
    line-height: 1.1;
}

.mfp-sip-sub {
    font-size: 11px;
    color: var(--fg-4);
    margin-top: 4px;
}

/* Sector allocation panel (inside holdings tab) */
.mfp-sec-panel {
    width: 220px;
    flex-shrink: 0;
    border-left: 1px solid var(--line);
    overflow-y: auto;
    background: var(--bg-1);
}

.mfp-sec-row {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-bottom: 1px solid var(--line-soft);
}

.mfp-sec-name {
    font-size: 11.5px;
    color: var(--fg-2);
    width: 90px;
    flex-shrink: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mfp-sec-val {
    font-size: 11px;
    color: var(--fg-3);
    width: 38px;
    text-align: right;
    flex-shrink: 0;
}

/* Returns tab */
.mfp-returns-wrap {
    padding: 14px 20px 24px;
}

.mfp-dual-bar {
    position: relative;
    height: 16px;
    background: var(--bg-1);
    border-radius: 2px;
    overflow: hidden;
}

.mfp-dual-center {
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--line-strong);
    transform: translateX(-0.5px);
}

.mfp-dual-fill {
    position: absolute;
    top: 2px;
    height: 5px;
    border-radius: 1px;
}

.mfp-dual-fill.scheme-bar {
    background: var(--accent);
    opacity: 0.85;
}

.mfp-dual-fill.bench-bar {
    top: 9px;
    background: var(--fg-4);
    opacity: 0.75;
}

/* About tab */
.mfp-about-wrap {
    padding: 24px;
}

.mfp-about-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1px;
    background: var(--line-soft);
    border: 1px solid var(--line-soft);
    border-radius: var(--radius);
    max-width: 1100px;
}

.mfp-about-block {
    background: var(--bg-1);
    padding: 16px 18px;
}

.mfp-about-h {
    font-size: 10.5px;
    color: var(--fg-4);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 10px;
}

.mfp-about-block p {
    margin: 0;
    font-size: 12.5px;
    color: var(--fg-2);
    line-height: 1.6;
}

.mfp-about-block strong {
    color: var(--fg);
    font-weight: 500;
}

.mfp-about-dl {
    margin: 0;
    display: grid;
    grid-template-columns: 130px 1fr;
    row-gap: 6px;
    column-gap: 12px;
    font-size: 12.5px;
}

.mfp-about-dl dt {
    color: var(--fg-4);
}

.mfp-about-dl dd {
    margin: 0;
    color: var(--fg-2);
}

.mfp-m-bar {
    margin-top: 6px;
    height: 3px;
    background: var(--bg-3);
    border-radius: 2px;
    overflow: hidden;
}

.mfp-m-bar-fill {
    height: 100%;
    background: var(--accent);
    opacity: 0.75;
}

/* ── Master Report ── */
.mr-root {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}

.mr-summary {
    display: flex;
    gap: 1px;
    background: var(--line-soft);
    border-bottom: 1px solid var(--line);
    flex-shrink: 0;
}

.mr-card {
    background: var(--bg-1);
    padding: 12px 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.mr-card-label {
    font-size: 10.5px;
    color: var(--fg-4);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 500;
}

.mr-card-value {
    font-family: var(--font-mono);
    font-size: 16px;
    color: var(--fg);
    font-weight: 500;
    line-height: 1.2;
}

.mr-card-value.pos {
    color: var(--pos);
}

.mr-card-value.neg {
    color: var(--neg);
}

.mr-card-sub {
    font-size: 11px;
    color: var(--fg-4);
}

.mr-nav {
    display: flex;
    gap: 2px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--line);
    background: var(--bg);
    flex-shrink: 0;
}

.mr-nav-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--fg-3);
    font-size: 12.5px;
    font-family: var(--font-sans);
    padding: 6px 12px;
    border-radius: var(--radius);
    transition: all 0.1s;
}

.mr-nav-btn:hover {
    color: var(--fg);
    background: var(--bg-2);
}

.mr-nav-btn.on {
    color: var(--fg);
    background: var(--bg-3);
}

.mr-content {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.mr-heatmap-wrap {
    flex: 1;
    overflow: auto;
}

.mr-heatmap-wrap .mfp-name-text {
    max-width: 240px;
    display: block;
}

.mr-leaders-wrap {
    flex: 1;
    overflow: auto;
    padding: 16px 20px 24px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 12px;
    align-content: start;
}

.mr-period-block {
    background: var(--bg-1);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.mr-period-head {
    font-size: 11px;
    font-weight: 600;
    color: var(--fg-3);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 8px 12px;
    border-bottom: 1px solid var(--line-soft);
    background: var(--bg-2);
}

.mr-period-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.mr-leader-col {
    padding: 8px 10px;
}

.mr-leader-col + .mr-leader-col {
    border-left: 1px solid var(--line-soft);
}

.mr-col-head {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.mr-col-head.pos {
    color: var(--pos);
}

.mr-col-head.neg {
    color: var(--neg);
}

.mr-leader-row {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 3px 0;
}

.mr-rank {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--fg-4);
    width: 14px;
    flex-shrink: 0;
}

.mr-lname {
    font-size: 11px;
    color: var(--fg-2);
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mr-lval {
    font-family: var(--font-mono);
    font-size: 11.5px;
    flex-shrink: 0;
}

.mr-lval.pos {
    color: var(--pos);
}

.mr-lval.neg {
    color: var(--neg);
}

.mr-cats-wrap {
    flex: 1;
    overflow: auto;
}

/* ── MI Institutional Intelligence Dashboard ── */
.mi-root {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.mi-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 1px;
    background: var(--line-soft);
    border-bottom: 1px solid var(--line);
    flex-shrink: 0;
}

.mi-kpi {
    background: var(--bg-1);
    padding: 10px 14px;
    flex: 1;
    min-width: 110px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    transition: background 0.12s;
    cursor: default;
}

.mi-kpi:hover {
    background: var(--bg-2);
    box-shadow: inset 0 -2px 0 var(--accent-line);
}

.mi-kpi-label {
    font-size: 10px;
    color: var(--fg-4);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
}

.mi-kpi-value {
    font-family: var(--font-mono);
    font-size: 13.5px;
    color: var(--fg);
    font-weight: 500;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mi-kpi.pos .mi-kpi-value {
    color: var(--pos);
}

.mi-kpi.neg .mi-kpi-value {
    color: var(--neg);
}

.mi-kpi.acc .mi-kpi-value {
    color: var(--accent);
}

.mi-kpi.warn .mi-kpi-value {
    color: #ffb800;
}

.mi-kpi-sub {
    font-size: 10.5px;
    color: var(--fg-4);
    font-family: var(--font-mono);
}

.mi-nav {
    display: flex;
    gap: 2px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--line);
    background: var(--bg);
    flex-shrink: 0;
}

.mi-nav-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--fg-3);
    font-size: 12.5px;
    font-family: var(--font-sans);
    padding: 6px 12px;
    border-radius: var(--radius);
    transition: all 0.1s;
}

.mi-nav-btn:hover {
    color: var(--fg);
    background: var(--bg-2);
}

.mi-nav-btn.on {
    color: var(--fg);
    background: var(--bg-3);
}

.mi-body {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.mi-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--line);
    background: var(--bg-1);
    flex-shrink: 0;
    flex-wrap: wrap;
}

.mi-search {
    background: var(--bg-2);
    border: 1px solid var(--line);
    color: var(--fg);
    font-size: 12px;
    padding: 5px 10px;
    border-radius: var(--radius-sm);
    font-family: var(--font-sans);
    outline: none;
    min-width: 160px;
}

.mi-search:focus {
    border-color: var(--accent-line);
}

.mi-select {
    background: var(--bg-2);
    border: 1px solid var(--line);
    color: var(--fg-2);
    font-size: 12px;
    padding: 5px 10px;
    border-radius: var(--radius-sm);
    outline: none;
    cursor: pointer;
    font-family: var(--font-sans);
}

.mi-tbl-count {
    font-size: 11.5px;
    color: var(--fg-4);
    font-family: var(--font-mono);
    margin-left: auto;
}

.mi-tbl-wrap {
    flex: 1;
    overflow: auto;
}

.mi-tbl {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}

.mi-tbl thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--bg-1);
    color: var(--fg-4);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: right;
    padding: 9px 10px;
    border-bottom: 1px solid var(--line);
    user-select: none;
    white-space: nowrap;
}

.mi-tbl thead th.s {
    cursor: pointer;
}

.mi-tbl thead th.s:hover {
    color: var(--fg-2);
    background: var(--bg-2);
}

.mi-tbl thead th.sa {
    color: var(--accent);
}

.mi-tbl thead th.cl,
.mi-tbl thead th.cn,
.mi-tbl thead th.cc {
    text-align: left;
}

.mi-tbl tbody tr {
    border-bottom: 1px solid var(--line-soft);
    transition: background 0.08s;
}

.mi-tbl tbody tr:hover {
    background: var(--bg-1);
}

.mi-tbl tbody tr[data-mistock] {
    cursor: pointer;
}

.mi-tbl tbody tr[data-mistock]:hover {
    background: var(--bg-2);
}

.mi-tbl td {
    padding: 8px 10px;
    vertical-align: middle;
    text-align: right;
}

.mi-tbl td.cl {
    color: var(--fg-4);
    font-family: var(--font-mono);
    font-size: 11px;
    width: 30px;
    text-align: left;
}

.mi-tbl td.cn {
    color: var(--fg);
    font-weight: 500;
    text-align: left;
    max-width: 200px;
}

.mi-tbl td.cc {
    text-align: left;
}

.mi-mono {
    font-family: var(--font-mono);
}

.mi-trunc {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
}

.mi-sec-chip {
    font-size: 10.5px;
    color: var(--fg-3);
    background: var(--bg-3);
    padding: 1px 5px;
    border-radius: 3px;
    white-space: nowrap;
}

/* Signal badges */
.mi-sig {
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 3px;
    font-weight: 600;
    white-space: nowrap;
    font-family: var(--font-mono);
    letter-spacing: 0.02em;
}

.mi-sig-sb {
    background: oklch(0.78 0.13 155 / 0.22);
    color: oklch(0.90 0.15 155);
}

.mi-sig-add {
    background: oklch(0.78 0.13 155 / 0.12);
    color: var(--pos);
}

.mi-sig-dist {
    background: oklch(0.70 0.18 25 / 0.22);
    color: oklch(0.88 0.20 25);
}

.mi-sig-red {
    background: oklch(0.70 0.18 25 / 0.12);
    color: var(--neg);
}

.mi-sig-stb {
    background: var(--bg-3);
    color: var(--fg-4);
}

/* Conviction / crowding bar */
.mi-cbwrap {
    display: flex;
    align-items: center;
    gap: 6px;
}

.mi-cbar {
    flex: 1;
    height: 4px;
    background: var(--bg-3);
    border-radius: 2px;
    overflow: hidden;
    min-width: 36px;
}

.mi-cfill {
    height: 100%;
    border-radius: 2px;
}

.mi-chi {
    background: var(--pos);
}

.mi-cmid {
    background: var(--accent);
}

.mi-clo {
    background: var(--fg-4);
}

.mi-cnum {
    font-family: var(--font-mono);
    font-size: 10.5px;
    color: var(--fg-3);
    width: 22px;
    text-align: right;
    flex-shrink: 0;
}

/* Risk badges */
.mi-risk {
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 3px;
    font-weight: 600;
    font-family: var(--font-mono);
}

.mi-rhi {
    background: oklch(0.70 0.18 25 / 0.22);
    color: oklch(0.88 0.20 25);
}

.mi-rmid {
    background: oklch(0.80 0.15 65 / 0.18);
    color: #ffb800;
}

.mi-rlo {
    background: oklch(0.78 0.13 155 / 0.15);
    color: var(--pos);
}

/* Sector momentum */
.mi-mom {
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 3px;
    font-weight: 600;
    font-family: var(--font-mono);
}

.mi-mpos {
    background: oklch(0.78 0.13 155 / 0.15);
    color: var(--pos);
}

.mi-mneg {
    background: oklch(0.70 0.18 25 / 0.15);
    color: var(--neg);
}

.mi-mstb {
    background: var(--bg-3);
    color: var(--fg-4);
}

/* Allocation bar */
.mi-abar {
    height: 5px;
    background: var(--bg-3);
    border-radius: 3px;
    overflow: hidden;
    min-width: 70px;
}

.mi-afill {
    height: 100%;
    background: var(--accent);
    opacity: 0.7;
}

/* Smart money flow */
.mi-flow-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: var(--line-soft);
    flex: 1;
    overflow: hidden;
}

.mi-flow-col {
    background: var(--bg-1);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.mi-flow-hd {
    padding: 10px 14px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--line-soft);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-shrink: 0;
}

.mi-flow-hd.sb {
    color: oklch(0.90 0.15 155);
    background: oklch(0.78 0.13 155 / 0.08);
}

.mi-flow-hd.add {
    color: var(--pos);
    background: oklch(0.78 0.13 155 / 0.04);
}

.mi-flow-hd.dist {
    color: var(--neg);
    background: oklch(0.70 0.18 25 / 0.08);
}

.mi-flow-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border-bottom: 1px solid var(--line-soft);
    transition: background 0.08s;
}

.mi-flow-row:hover {
    background: var(--bg-2);
}

.mi-flow-nm {
    flex: 1;
    font-size: 12px;
    color: var(--fg);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mi-flow-sec {
    font-size: 10px;
    color: var(--fg-4);
    flex-shrink: 0;
    max-width: 70px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mi-flow-val {
    font-family: var(--font-mono);
    font-size: 11.5px;
    flex-shrink: 0;
}

.mi-flow-cnt {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--fg-4);
    flex-shrink: 0;
}

/* AI Insights */
.mi-insights-wrap {
    flex: 1;
    overflow: auto;
}

.mi-insights-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 10px;
    padding: 16px 20px;
    align-content: start;
}

.mi-icard {
    background: var(--bg-1);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 13px 15px;
    display: flex;
    gap: 12px;
    align-items: flex-start;
    transition: background 0.12s;
}

.mi-icard:hover {
    background: var(--bg-2);
}

.mi-icard.bull {
    border-left: 2px solid var(--pos);
}

.mi-icard.bear {
    border-left: 2px solid var(--neg);
}

.mi-icard.warn {
    border-left: 2px solid #ffb800;
}

.mi-icard.info {
    border-left: 2px solid var(--accent);
}

.mi-iicon {
    font-size: 18px;
    flex-shrink: 0;
    line-height: 1;
    margin-top: 1px;
}

.mi-ibody {
    flex: 1;
    min-width: 0;
}

.mi-ititle {
    font-size: 12.5px;
    color: var(--fg);
    font-weight: 500;
    margin-bottom: 3px;
}

.mi-itext {
    font-size: 11.5px;
    color: var(--fg-3);
    line-height: 1.5;
}

.mi-itag {
    font-family: var(--font-mono);
    font-size: 9px;
    padding: 2px 5px;
    border-radius: 3px;
    letter-spacing: 0.08em;
    flex-shrink: 0;
    align-self: flex-start;
}

.mi-itag.bull {
    background: oklch(0.78 0.13 155 / 0.15);
    color: var(--pos);
}

.mi-itag.bear {
    background: oklch(0.70 0.18 25 / 0.15);
    color: var(--neg);
}

.mi-itag.warn {
    background: oklch(0.80 0.15 65 / 0.15);
    color: #ffb800;
}

.mi-itag.info {
    background: var(--accent-soft);
    color: var(--accent);
}

.mi-empty {
    padding: 24px;
    text-align: center;
    color: var(--fg-4);
    font-size: 12px;
}

.mi-spinner {
    padding: 40px;
    text-align: center;
    color: var(--fg-4);
    font-size: 12px;
}
