/* =========================================================
   Market Intelligence Accessibility Center — v1.90
   Loaded last; opt-in classes only affect the user's chosen mode.
   ========================================================= */

:root{
    --mi-a11y-text-scale:1;
    --mi-a11y-panel-z:1200;
}

/* Keyboard skip navigation */
.mi-a11y-skip-link{
    position:fixed;
    left:12px;
    top:10px;
    z-index:1400;
    padding:10px 14px;
    border-radius:9px;
    background:#ffffff;
    color:#081725!important;
    font:800 14px/1.2 system-ui,-apple-system,"Segoe UI",Arial,sans-serif!important;
    text-decoration:none!important;
    transform:translateY(-160%);
    transition:transform .12s ease;
    box-shadow:0 8px 30px rgba(0,0,0,.28);
}
.mi-a11y-skip-link:focus{
    transform:translateY(0);
    outline:3px solid #ffd66e!important;
    outline-offset:2px!important;
}

/* Launcher */
.mi-a11y-root{
    position:relative;
    z-index:var(--mi-a11y-panel-z);
}
.mi-a11y-launcher{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:var(--mi-a11y-panel-z);
    min-height:44px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:0 13px;
    border:1px solid rgba(122,153,191,.22);
    border-radius:999px;
    background:rgba(10,24,41,.94);
    color:#dfe9f5;
    box-shadow:0 15px 42px rgba(0,0,0,.28);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    font:700 13px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
    cursor:pointer;
}
.mi-a11y-launcher:hover{
    border-color:rgba(101,148,236,.46);
    background:rgba(15,34,57,.98);
}
.mi-a11y-launcher:focus-visible{
    outline:3px solid #8eb4ff;
    outline-offset:3px;
}
.mi-a11y-launcher-icon{
    display:grid;
    place-items:center;
    width:24px;
    height:24px;
    border-radius:50%;
    background:rgba(100,145,232,.12);
    font-size:16px;
}

/* Panel */
.mi-a11y-panel[hidden]{display:none!important}
.mi-a11y-panel{
    position:fixed;
    right:18px;
    bottom:72px;
    z-index:calc(var(--mi-a11y-panel-z) + 1);
    width:min(430px,calc(100vw - 24px));
    max-height:min(760px,calc(100dvh - 92px));
    overflow:auto;
    overscroll-behavior:contain;
    padding:18px;
    border:1px solid rgba(126,158,197,.20);
    border-radius:18px;
    background:linear-gradient(150deg,#10243b,#091827 72%);
    color:#e9f1fa;
    box-shadow:0 30px 90px rgba(0,0,0,.48);
    font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
    font-size:14px!important;
    line-height:1.45;
}
.mi-a11y-panel *{
    box-sizing:border-box;
}
.mi-a11y-panel-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}
.mi-a11y-eyebrow{
    display:block;
    margin-bottom:4px;
    color:#7795ba;
    font-size:11px!important;
    font-weight:900;
    letter-spacing:.8px;
}
.mi-a11y-panel h2{
    margin:0;
    color:#f4f8fd;
    font-size:21px!important;
    line-height:1.2!important;
}
.mi-a11y-panel-head p{
    margin:7px 0 0;
    color:#9aacc0;
    font-size:13px!important;
    line-height:1.5!important;
}
.mi-a11y-close{
    flex:0 0 auto;
    width:38px;
    height:38px;
    border:1px solid rgba(126,158,197,.12);
    border-radius:10px;
    background:rgba(255,255,255,.025);
    color:#b6c7d8;
    font-size:24px!important;
    line-height:1;
    cursor:pointer;
}
.mi-a11y-close:hover{background:rgba(255,255,255,.06)}
.mi-a11y-close:focus-visible{outline:3px solid #8eb4ff;outline-offset:2px}

.mi-a11y-section{
    margin-top:14px;
    padding:14px;
    border:1px solid rgba(126,158,197,.10);
    border-radius:13px;
    background:rgba(255,255,255,.018);
}
.mi-a11y-section-title{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-bottom:11px;
}
.mi-a11y-section-title strong{
    display:block;
    color:#e8f0f9;
    font-size:14px!important;
}
.mi-a11y-section-title small{
    display:block;
    margin-top:2px;
    color:#8398ad;
    font-size:12px!important;
    line-height:1.35!important;
}
.mi-a11y-section-title output{
    min-width:54px;
    padding:5px 7px;
    border-radius:8px;
    background:rgba(101,148,236,.09);
    color:#a9c5f5;
    text-align:center;
    font-size:12px!important;
    font-weight:850;
}

.mi-a11y-size-control{
    display:grid;
    grid-template-columns:48px 1fr 48px;
    align-items:center;
    gap:9px;
}
.mi-a11y-size-control button{
    height:42px;
    border:1px solid rgba(126,158,197,.14);
    border-radius:9px;
    background:rgba(255,255,255,.025);
    color:#dce7f2;
    font-size:14px!important;
    font-weight:850;
    cursor:pointer;
}
.mi-a11y-size-control input{
    width:100%;
    accent-color:#6e98e7;
}
.mi-a11y-size-presets{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:5px;
    margin-top:9px;
}
.mi-a11y-size-presets button{
    min-height:34px;
    padding:4px;
    border:1px solid rgba(126,158,197,.10);
    border-radius:7px;
    background:rgba(255,255,255,.018);
    color:#8ca2b9;
    font-size:11px!important;
    cursor:pointer;
}
.mi-a11y-size-presets button.active{
    border-color:rgba(103,149,236,.32);
    background:rgba(103,149,236,.10);
    color:#b9d0f8;
}

.mi-a11y-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
}
.mi-a11y-option{
    min-height:76px;
    display:flex;
    align-items:center;
    gap:9px;
    padding:10px;
    text-align:left;
    border:1px solid rgba(126,158,197,.09);
    border-radius:10px;
    background:rgba(255,255,255,.012);
    color:#dce6f0;
    cursor:pointer;
}
.mi-a11y-option:hover{
    border-color:rgba(101,148,236,.22);
    background:rgba(101,148,236,.035);
}
.mi-a11y-option[aria-pressed="true"]{
    border-color:rgba(101,148,236,.34);
    background:rgba(101,148,236,.09);
    box-shadow:inset 0 0 0 1px rgba(101,148,236,.05);
}
.mi-a11y-option-icon{
    flex:0 0 auto;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:9px;
    background:rgba(255,255,255,.03);
    color:#90b0e9;
    font-size:14px!important;
    font-weight:850;
}
.mi-a11y-option strong{
    display:block;
    color:#e0eaf4;
    font-size:12px!important;
    line-height:1.2!important;
}
.mi-a11y-option small{
    display:block;
    margin-top:3px;
    color:#758da5;
    font-size:11px!important;
    line-height:1.3!important;
}

.mi-a11y-panel-foot{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:14px;
}
.mi-a11y-status{
    color:#7189a1;
    font-size:11px!important;
}
.mi-a11y-reset{
    min-height:38px;
    padding:0 11px;
    border:1px solid rgba(225,126,137,.15);
    border-radius:9px;
    background:rgba(225,126,137,.035);
    color:#d9979f;
    font-size:11px!important;
    font-weight:800;
    cursor:pointer;
}

/* =========================================================
   Text scaling
   JS records each element's responsive computed base size in
   --mi-a11y-base-font-size, then this rule reflows real text.
   ========================================================= */
html.mi-a11y-text-scale-active .mi-a11y-scaled-text{
    font-size:calc(var(--mi-a11y-base-font-size) * var(--mi-a11y-text-scale))!important;
}

/* Layout safety during enlarged-text modes. */
html.mi-a11y-text-scale-active body{
    overflow-x:hidden;
}
html.mi-a11y-text-scale-active .mi-dashboard,
html.mi-a11y-text-scale-active .mi-shell,
html.mi-a11y-text-scale-active .mi-app,
html.mi-a11y-text-scale-active .mi-main,
html.mi-a11y-text-scale-active main,
html.mi-a11y-text-scale-active section,
html.mi-a11y-text-scale-active article,
html.mi-a11y-text-scale-active .mi-panel,
html.mi-a11y-text-scale-active .mi-card{
    min-width:0;
}
html.mi-a11y-text-scale-active .mi-app-header{
    min-height:58px;
    height:auto!important;
}
html.mi-a11y-text-scale-active .mi-header-page,
html.mi-a11y-text-scale-active .mi-header-right,
html.mi-a11y-text-scale-active .mi-header-user,
html.mi-a11y-text-scale-active .mi-sidebar .mi-nav a,
html.mi-a11y-text-scale-active button,
html.mi-a11y-text-scale-active a{
    min-width:0;
}
html.mi-a11y-text-scale-active .mi-sidebar .mi-nav a{
    height:auto!important;
    min-height:42px;
}
html.mi-a11y-text-scale-active :is(button,.mi-button,input,select,textarea){
    min-height:40px;
}
html.mi-a11y-text-scale-active :is(.mi-pf2-tabs,.mi-ledger-tabs,.mi-settings-tabs,.mi-profile-tabs){
    overflow-x:auto;
    white-space:nowrap;
    scrollbar-width:thin;
}
html.mi-a11y-text-scale-active table{
    max-width:100%;
}

/* Comfortable reading */
html.mi-a11y-comfortable-spacing body,
html.mi-a11y-comfortable-spacing .mi-dashboard{
    line-height:1.65!important;
}
html.mi-a11y-comfortable-spacing :is(p,li,td,th,label,small){
    line-height:1.65!important;
}
html.mi-a11y-comfortable-spacing :is(p,li){
    letter-spacing:.02em!important;
}
html.mi-a11y-comfortable-spacing p + p{
    margin-top:.8em!important;
}

/* Readable font: use fonts already available on the system. */
html.mi-a11y-readable-font body,
html.mi-a11y-readable-font body *:not(code):not(kbd):not(pre){
    font-family:Arial,"Segoe UI",system-ui,sans-serif!important;
}

/* Link visibility */
html.mi-a11y-highlight-links a:not(.mi-button):not(.mi-nav a){
    text-decoration:underline!important;
    text-decoration-thickness:2px!important;
    text-underline-offset:3px!important;
}

/* Strong keyboard focus, always visible. */
html.mi-a11y-focus-assist :focus{
    outline:3px solid #ffd66e!important;
    outline-offset:3px!important;
}
html.mi-a11y-focus-assist :focus:not(:focus-visible){
    outline:3px solid #ffd66e!important;
}

/* Contrast mode: intentionally keeps positive/negative semantic colors. */
html.mi-a11y-high-contrast body{
    --mi-a11y-contrast-text:#ffffff;
}
html.mi-a11y-high-contrast .mi-dashboard,
html.mi-a11y-high-contrast .mi-app,
html.mi-a11y-high-contrast .mi-main{
    color:#ffffff!important;
}
html.mi-a11y-high-contrast :is(
    p,span,small,label,th,td,.mi-muted,.mi-panel-kicker,.mi-section-kicker,
    .mi-header-breadcrumb,.mi-nav-heading
){
    color:#d9e4ef!important;
}
html.mi-a11y-high-contrast :is(
    .mi-panel,.mi-card,article,section,.mi-app-header,.mi-sidebar,
    input,select,textarea,button
){
    border-color:rgba(220,235,250,.26)!important;
}
html.mi-a11y-high-contrast input::placeholder,
html.mi-a11y-high-contrast textarea::placeholder{
    color:#b5c3d2!important;
    opacity:1!important;
}

/* Grayscale can be useful for users who prefer reduced color dependence. */
html.mi-a11y-grayscale body > *:not(.mi-a11y-root){
    filter:grayscale(1);
}

/* Respect user choice and OS-level reduced-motion preference. */
html.mi-a11y-reduce-motion *,
html.mi-a11y-reduce-motion *::before,
html.mi-a11y-reduce-motion *::after{
    scroll-behavior:auto!important;
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
}
@media (prefers-reduced-motion:reduce){
    .mi-dashboard *,
    .mi-dashboard *::before,
    .mi-dashboard *::after{
        scroll-behavior:auto!important;
        animation-duration:.001ms!important;
        animation-iteration-count:1!important;
    }
}

/* Larger click / tap targets without changing card geometry. */
html.mi-a11y-large-controls :is(
    button,.mi-button,input:not([type="hidden"]),select,textarea,
    .mi-nav a,.mi-bottom-nav a,[role="button"]
){
    min-height:48px!important;
}
html.mi-a11y-large-controls input[type="checkbox"],
html.mi-a11y-large-controls input[type="radio"]{
    min-width:22px!important;
    width:22px!important;
    height:22px!important;
    min-height:22px!important;
}

/* Never scale the accessibility panel itself with page text settings. */
html.mi-a11y-text-scale-active .mi-a11y-panel,
html.mi-a11y-text-scale-active .mi-a11y-panel * ,
html.mi-a11y-text-scale-active .mi-a11y-launcher,
html.mi-a11y-text-scale-active .mi-a11y-launcher *{
    font-size:revert!important;
}
html.mi-a11y-text-scale-active .mi-a11y-panel{font-size:14px!important}
html.mi-a11y-text-scale-active .mi-a11y-panel h2{font-size:21px!important}
html.mi-a11y-text-scale-active .mi-a11y-panel-head p{font-size:13px!important}
html.mi-a11y-text-scale-active .mi-a11y-section-title strong{font-size:14px!important}
html.mi-a11y-text-scale-active .mi-a11y-section-title small{font-size:12px!important}
html.mi-a11y-text-scale-active .mi-a11y-option strong{font-size:12px!important}
html.mi-a11y-text-scale-active .mi-a11y-option small{font-size:11px!important}
html.mi-a11y-text-scale-active .mi-a11y-launcher{font-size:13px!important}

/* Mobile placement stays above the application's bottom navigation. */
@media(max-width:760px){
    .mi-a11y-launcher{
        right:12px;
        bottom:78px;
        min-width:46px;
        padding:0 11px;
    }
    .mi-a11y-launcher-label{display:none}
    .mi-a11y-panel{
        right:8px;
        bottom:132px;
        width:calc(100vw - 16px);
        max-height:calc(100dvh - 146px);
        padding:15px;
        border-radius:17px;
    }
    .mi-a11y-grid{grid-template-columns:1fr}
    .mi-a11y-size-presets{grid-template-columns:repeat(5,minmax(0,1fr))}
    .mi-a11y-panel-foot{align-items:flex-start;flex-direction:column}
}
@media(max-width:420px){
    .mi-a11y-size-presets{
        grid-template-columns:repeat(3,1fr);
    }
    .mi-a11y-size-presets button:nth-child(4),
    .mi-a11y-size-presets button:nth-child(5){
        grid-column:auto;
    }
}

/* Print: accessibility controls themselves should not print. */
@media print{
    .mi-a11y-root{display:none!important}
}

/* v2.00.1 — 125–200% text reflow safeguards (WCAG-style no-horizontal-loss target) */
html.mi-a11y-text-scale-active .mi-app{min-width:0!important;overflow-x:hidden}
html.mi-a11y-text-scale-active .mi-main{min-width:0!important;max-width:100%!important}
html.mi-a11y-text-scale-active :is(.mi-toolbar,.mi-pf2-toolbar,.mi-pf2-actions,.mi-portfolio-actions,.mi-header-right,.mi-case-head,.mi-case-meta){flex-wrap:wrap!important}
html.mi-a11y-text-scale-active :is(.mi-toolbar,.mi-pf2-toolbar,.mi-pf2-actions,.mi-portfolio-actions)>*{min-width:0!important;max-width:100%}
html.mi-a11y-text-scale-active :is(button,.mi-button,.mi-position-action){white-space:normal!important;overflow-wrap:anywhere!important;line-height:1.25!important;height:auto!important;padding-block:.65em!important}
html.mi-a11y-text-scale-active :is(.mi-card,.mi-panel,.mi-pf2-card,.mi-wealth-card){overflow-wrap:anywhere}
html.mi-a11y-text-scale-active .mi-notification-panel{font-size:14px!important;width:min(420px,calc(100vw - 24px))!important;max-height:calc(100dvh - 86px)!important}
html.mi-a11y-text-scale-active .mi-notification-panel *{font-size:inherit}
html.mi-a11y-text-scale-active .mi-notification-panel>header strong{font-size:16px!important}
html.mi-a11y-text-scale-active .mi-notification-panel>header small,html.mi-a11y-text-scale-active .mi-notification-item small{font-size:12px!important}
html.mi-a11y-text-scale-active .mi-notification-item strong,html.mi-a11y-text-scale-active .mi-notification-item p{font-size:13px!important}
@media(max-width:1180px){html.mi-a11y-text-scale-active .mi-shell{grid-template-columns:minmax(190px,230px) minmax(0,1fr)!important}html.mi-a11y-text-scale-active .mi-header-right{gap:6px!important}html.mi-a11y-text-scale-active .mi-main{padding-left:18px!important;padding-right:18px!important}}
@media(max-width:900px){html.mi-a11y-text-scale-active .mi-shell{display:block!important}html.mi-a11y-text-scale-active .mi-sidebar{position:fixed!important}html.mi-a11y-text-scale-active .mi-app{width:100%!important}html.mi-a11y-text-scale-active .mi-app-header{padding-inline:12px!important}html.mi-a11y-text-scale-active .mi-main{padding-inline:12px!important}.mi-a11y-launcher-label{display:none}}

/* v2.00.2 — true enlarged-text reflow. Controls keep bounded typography so text
   enlargement cannot turn toolbar buttons into oversized cards. */
html.mi-a11y-text-scale-active :is(button,.mi-button,.mi-pf2-action,.mi-position-action,input,select,textarea){
  font-size:clamp(12px,0.84rem,16px)!important;
  line-height:1.3!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
html.mi-a11y-text-scale-active .mi-pf2-action{
  min-height:42px!important;height:auto!important;padding:9px 13px!important;width:auto!important;max-width:100%!important
}
html.mi-a11y-text-scale-active .mi-pf2-command-actions{
  display:flex!important;align-items:stretch!important;justify-content:flex-end!important;gap:8px!important;flex-wrap:wrap!important
}
html.mi-a11y-text-scale-active .mi-pf2-command-actions .mi-pf2-action{flex:0 1 auto!important}

/* At 150%+ switch dense portfolio command areas to an intentional stacked layout
   before enlarged text can collide with adjacent content. */
html:is(.mi-a11y-text-150,.mi-a11y-text-175,.mi-a11y-text-200) .mi-pf2-command{
  display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px!important;align-items:start!important
}
html:is(.mi-a11y-text-150,.mi-a11y-text-175,.mi-a11y-text-200) .mi-pf2-command-actions{
  justify-content:flex-start!important;width:100%!important
}
html:is(.mi-a11y-text-150,.mi-a11y-text-175,.mi-a11y-text-200) .mi-pf2-command-actions .mi-pf2-action{
  flex:0 1 auto!important;min-width:132px!important
}
html:is(.mi-a11y-text-150,.mi-a11y-text-175,.mi-a11y-text-200) .mi-pf2-hero-grid,
html:is(.mi-a11y-text-150,.mi-a11y-text-175,.mi-a11y-text-200) .mi-pf2-stat-grid{
  min-width:0!important
}

/* Notification Center is an application chrome component: keep it at a stable,
   legible size regardless of page text enlargement and never let text-scale classes
   alter its internal geometry. */
html.mi-a11y-text-scale-active .mi-notification-center,
html.mi-a11y-text-scale-active .mi-notification-center *{
  --mi-a11y-base-font-size:initial!important;
}
html.mi-a11y-text-scale-active .mi-notification-panel{font-size:14px!important;width:400px!important;max-width:min(400px,calc(100vw - 28px))!important}
html.mi-a11y-text-scale-active .mi-notification-panel .mi-a11y-scaled-text{font-size:inherit!important}
html.mi-a11y-text-scale-active .mi-notification-panel>header strong{font-size:17px!important}
html.mi-a11y-text-scale-active .mi-notification-panel>header small{font-size:12px!important}
html.mi-a11y-text-scale-active .mi-notification-content strong,
html.mi-a11y-text-scale-active .mi-notification-content p{font-size:13px!important}
html.mi-a11y-text-scale-active .mi-notification-content small{font-size:11px!important}
html.mi-a11y-text-scale-active .mi-notification-panel>header button,
html.mi-a11y-text-scale-active .mi-notification-panel>footer a{font-size:12px!important}

/* Preserve page width and reflow content rather than clipping it. */
html:is(.mi-a11y-text-150,.mi-a11y-text-175,.mi-a11y-text-200) .mi-main{overflow-x:clip!important}
html:is(.mi-a11y-text-175,.mi-a11y-text-200) .mi-header-search{display:none!important}
@media(max-width:1180px){
  html:is(.mi-a11y-text-150,.mi-a11y-text-175,.mi-a11y-text-200) .mi-pf2-command-actions .mi-pf2-action{flex:1 1 150px!important}
}

/* ============================================================
   v2.02.2 SIDEBAR ACCESSIBILITY REFLOW
============================================================ */
html.mi-a11y-text-scale-active .mi-sidebar{
    overflow:hidden!important;
}
html.mi-a11y-text-scale-active .mi-sidebar-scroll{
    min-height:0!important;
    overflow-y:auto!important;
}
html.mi-a11y-text-scale-active .mi-sidebar-bottom{
    flex:none!important;
}
html.mi-a11y-text-scale-active .mi-sidebar-profile-copy strong,
html.mi-a11y-text-scale-active .mi-sidebar-profile-copy small{
    max-width:100%;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
}
html.mi-a11y-text-125 .mi-sidebar .mi-nav a{min-height:38px}
html.mi-a11y-text-150 .mi-sidebar .mi-nav a,
html.mi-a11y-text-175 .mi-sidebar .mi-nav a,
html.mi-a11y-text-200 .mi-sidebar .mi-nav a{min-height:40px}
html.mi-a11y-text-150 .mi-sidebar:not(.unused),
html.mi-a11y-text-175 .mi-sidebar:not(.unused),
html.mi-a11y-text-200 .mi-sidebar:not(.unused){overscroll-behavior:contain}
