/* FinFact primary mobile shell — production Plennor parity layer.
   Source of geometry/material: Plennor production V42 shell over accepted V41 UX. */
:root{
  --ff-app-height:100vh;
  --ff-safe-bottom:env(safe-area-inset-bottom,0px);
  --ff-scroll-clearance:132px;
  --ff-glass:rgba(24,24,24,.52);
  --ff-glass-border:rgba(255,255,255,.12);
  --ff-glass-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 4px 16px rgba(0,0,0,.14);
  --ff-page:#080808;
  --ff-surface:#141414;
  --ff-control:#1d1d1d;
  --ff-line:#303030;
  --ff-muted:#a9a9a9;
}
@supports(height:100dvh){:root{--ff-app-height:100dvh}}
@media(display-mode:standalone){:root{--ff-app-height:100vh}}
@media(min-width:0px){
  html,body{background:var(--ff-page)!important;color:#f3f3f3}
  html:has(#ff-app-shell),body:has(#ff-app-shell){
    width:100%;height:100%;min-height:100%;margin:0;padding:0;
    overflow:hidden!important;overscroll-behavior:none!important;
  }
  @media(display-mode:standalone){
    html:has(#ff-app-shell),body:has(#ff-app-shell){height:100vh!important;min-height:100vh!important}
  }
  body:has(#ff-app-shell){padding-bottom:0!important}
  body:has(#ff-app-shell) .ambient{display:none!important}
  body:has(#ff-app-shell) #app,#ff-app-shell{
    position:fixed;inset:0;
    width:100%;height:var(--ff-app-height);max-height:var(--ff-app-height);
    overflow:hidden;background:var(--ff-page);
  }
  #ff-app-shell{display:flex;flex-direction:column;min-height:0}
  .ff-boot{
    position:fixed;inset:0;display:grid;place-items:center;
    background:var(--ff-page);z-index:2;
  }
  .ff-boot>span{
    width:30px;height:30px;border-radius:999px;
    border:3px solid rgba(255,255,255,.12);
    border-top-color:rgba(255,255,255,.88);
    animation:ff-boot-spin .72s linear infinite;
  }
  @keyframes ff-boot-spin{to{transform:rotate(360deg)}}
  #ff-page-host{
    position:absolute;inset:0;z-index:1;
    overflow-y:auto;overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;overscroll-behavior-x:none;
    touch-action:pan-y pinch-zoom;
    scrollbar-width:none;
    scroll-behavior:smooth;
  }
  #ff-page-host::-webkit-scrollbar{display:none}
  #ff-page-host>.shell,
  #ff-page-host>main{
    width:min(calc(100% - 48px),1180px)!important;
    margin-inline:auto!important;
    padding-top:calc(env(safe-area-inset-top,0px) + var(--ff-header-height,58px) + 26px)!important;
    padding-bottom:var(--ff-scroll-clearance)!important;
    min-height:100%;
  }

  /* Plennor header: transparent row; only local controls own glass. */
  .ff-nav-wrap{
    position:absolute!important;inset:0 0 auto!important;z-index:50!important;
    padding:0!important;margin:0!important;background:transparent!important;
    pointer-events:none!important;
  }
  .ff-nav{
    position:relative!important;
    width:min(calc(100% - 48px),560px)!important;
    min-height:58px!important;
    margin:calc(env(safe-area-inset-top,0px) + 14px) auto 0!important;
    padding:0!important;
    display:flex!important;align-items:center!important;justify-content:space-between!important;
    border:0!important;border-radius:0!important;background:transparent!important;
    box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
    pointer-events:none!important;
  }
  .ff-nav::before,.ff-nav::after{content:none!important}
  .ff-nav .brand{
    pointer-events:auto!important;
    display:block!important;
    margin-left:-12px!important;padding:6px 12px!important;
    border:1px solid transparent!important;border-radius:24px!important;
    background:transparent!important;box-shadow:none!important;
    backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
    color:#f5f5f5!important;
    font-size:22px!important;line-height:1!important;font-weight:700!important;
    letter-spacing:-.045em!important;text-decoration:none!important;
    transition:background .18s ease,border-color .18s ease,box-shadow .18s ease!important;
  }
  .ff-nav .brand[data-ff-brand-scrolled]{
    background:var(--ff-glass)!important;
    backdrop-filter:blur(18px) saturate(150%)!important;
    -webkit-backdrop-filter:blur(18px) saturate(150%)!important;
    border-color:var(--ff-glass-border)!important;
    box-shadow:var(--ff-glass-shadow)!important;
  }
  .ff-profile-menu{pointer-events:auto!important;margin-left:auto!important}
  .ff-profile-menu>summary{
    width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;
    display:grid!important;place-items:center!important;padding:0!important;
    border:1px solid var(--ff-glass-border)!important;border-radius:999px!important;
    background:var(--ff-glass)!important;
    backdrop-filter:blur(18px) saturate(150%)!important;
    -webkit-backdrop-filter:blur(18px) saturate(150%)!important;
    box-shadow:var(--ff-glass-shadow)!important;
    -webkit-tap-highlight-color:transparent!important;
  }
  .ff-profile-avatar{
    width:42px!important;height:42px!important;border:0!important;border-radius:999px!important;
    background:transparent!important;box-shadow:none!important;
  }
  .ff-profile-avatar::before{width:23px!important;height:23px!important;background-size:23px 23px!important}
  .ff-profile-menu[open]::before{
    content:"";position:fixed;inset:0;z-index:79;
    background:rgba(0,0,0,.66);
    backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
    pointer-events:none;
    animation:ff-scrim-in 180ms ease-out both;
  }
  @keyframes ff-scrim-in{from{opacity:0}to{opacity:1}}
  .ff-profile-popover{
    position:fixed!important;z-index:80!important;
    left:50%!important;right:auto!important;top:auto!important;bottom:0!important;
    width:min(100%,560px)!important;max-width:560px!important;
    max-height:min(88dvh,820px)!important;overflow:auto!important;
    transform:translateX(-50%)!important;
    border:1px solid #363636!important;border-bottom:0!important;
    border-radius:30px 30px 0 0!important;
    background:#141414!important;box-shadow:0 24px 90px #0008!important;
    padding:82px 20px max(22px,calc(env(safe-area-inset-bottom,0px) + 14px))!important;
    animation:ff-sheet-in 260ms cubic-bezier(.2,.82,.26,1) both;
  }
  @keyframes ff-sheet-in{from{transform:translate(-50%,100%);opacity:.78}to{transform:translate(-50%,0);opacity:1}}
  .ff-profile-popover::before{
    content:"";position:absolute;top:14px;left:50%;transform:translateX(-50%);
    width:42px;height:5px;border-radius:999px;background:#5a5a5a;
  }
  .ff-profile-identity{
    display:grid!important;justify-items:center!important;gap:7px!important;
    padding:0 0 22px!important;margin-bottom:10px!important;
    border-bottom:1px solid #303030!important;text-align:center!important;
  }
  .ff-profile-identity::before{
    content:"";display:block;width:112px;height:112px;margin-bottom:7px;
    border-radius:999px;border:1px solid #3a3a3a;background:#1d1d1d center/52px 52px no-repeat
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='3.6'/%3E%3Cpath d='M5.8 20c.5-4.1 2.7-6.2 6.2-6.2s5.7 2.1 6.2 6.2'/%3E%3C/svg%3E");
  }
  .ff-profile-identity strong{font-size:20px!important;color:#f5f5f5!important}
  .ff-profile-identity span{font-size:14px!important;color:#9f9f9f!important}
  .ff-profile-popover>a,.ff-profile-popover>button{
    width:100%!important;min-height:50px!important;border-radius:14px!important;padding:12px 14px!important;
    display:flex!important;align-items:center!important;
    border:0!important;background:transparent!important;color:#f0f0f0!important;text-decoration:none!important;
  }
  .ff-profile-popover>a:active,.ff-profile-popover>button:active{background:#292929!important}

  /* Bottom island: accepted Plennor 20px offset + exact v16/v18 glass. */
  .ff-nav #ff-navigation{
    --dock-index:0;--dock-drag:0px;
    pointer-events:auto!important;
    position:fixed!important;left:50%!important;right:auto!important;top:auto!important;
    bottom:20px!important;
    transform:translateX(-50%)!important;
    width:min(calc(100% - 48px),560px)!important;max-width:560px!important;
    min-height:72px!important;margin:0!important;padding:6px!important;
    display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0!important;
    border:1px solid var(--ff-glass-border)!important;border-radius:999px!important;
    background:var(--ff-glass)!important;
    backdrop-filter:blur(18px) saturate(150%)!important;
    -webkit-backdrop-filter:blur(18px) saturate(150%)!important;
    box-shadow:var(--ff-glass-shadow)!important;
    overflow:hidden!important;isolation:isolate!important;
    touch-action:pan-y pinch-zoom!important;
    user-select:none!important;-webkit-user-select:none!important;
    -webkit-tap-highlight-color:transparent!important;
    z-index:60!important;
  }
  .ff-nav #ff-navigation::before{
    top:6px!important;bottom:6px!important;left:6px!important;
    width:calc((100% - 12px)/4)!important;
    border:1px solid rgba(255,255,255,.12)!important;border-radius:999px!important;
    background:rgba(255,255,255,.10)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 2px 8px rgba(0,0,0,.12)!important;
    transform:translate3d(calc(var(--dock-index)*100% + var(--dock-drag)),0,0)!important;
    transition:transform 300ms cubic-bezier(.2,.9,.24,1.12),opacity 150ms ease!important;
  }
  .ff-nav #ff-navigation[data-dock-dragging=true]::before{transition:none!important}
  .ff-nav #ff-navigation>a{
    min-height:58px!important;padding:6px 2px!important;gap:4px!important;
    color:#a9a9a9!important;font-size:12px!important;font-weight:500!important;line-height:1.2!important;
    border-radius:999px!important;background:transparent!important;
    transition:color 140ms ease,transform 120ms ease!important;
  }
  .ff-nav #ff-navigation>a:active{transform:scale(.96)}
  .ff-nav #ff-navigation>a>svg{width:23px!important;height:23px!important;flex:0 0 23px!important}
  .ff-nav #ff-navigation>a[aria-current=page],
  .ff-nav #ff-navigation[data-dock-preview="0"]>a:nth-of-type(1),
  .ff-nav #ff-navigation[data-dock-preview="1"]>a:nth-of-type(2),
  .ff-nav #ff-navigation[data-dock-preview="2"]>a:nth-of-type(3),
  .ff-nav #ff-navigation[data-dock-preview="3"]>a:nth-of-type(4){color:#f5f5f5!important}

  /* Plennor page language. */
  #ff-page-host .fw-workspace,#ff-page-host .mk-workspace,#ff-page-host .iv-workspace{
    background:transparent!important;
  }
  .fw-heading,.mk-pagehead,.iv-head{margin-bottom:28px!important}
  .fw-heading h1,.mk-pagehead h1,.iv-head h1{
    color:#f5f5f5!important;
    font-size:clamp(42px,12vw,56px)!important;line-height:.96!important;
    font-weight:700!important;letter-spacing:-.06em!important;
  }
  .fw-card,.mk-surface,.iv-panel,.ff-money-page-card,.ff-money-summary{
    background:var(--ff-surface)!important;
    border:1px solid var(--ff-line)!important;
    border-radius:26px!important;
    box-shadow:none!important;
  }
  .fw-card{padding:24px!important}
  .fw-widget-label,.fw-muted,.fw-card p,.fw-chart-note,.iv-muted,.mk-muted,
  .ff-money-page p,.ff-money-page-status{color:var(--ff-muted)!important}
  .fw-quiet-button,.btn.secondary,.mk-chip,.mk-filter-tools details>summary,
  .ff-money-tabs,.pc-period-button,.pc-icon-button{
    background:var(--ff-control)!important;border-color:#414141!important;
    color:#f2f2f2!important;
  }
  .fw-heading>.fw-quiet-button{
    width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;
    padding:0!important;border-radius:999px!important;
    display:grid!important;place-items:center!important;
    font-size:20px!important;line-height:1!important;
  }
  .fw-heading>.fw-quiet-button>span{display:none!important}
  .pc-icon-button,.mk-icon{min-width:44px!important;min-height:44px!important;border-radius:999px!important}
  .fw-quiet-button:active,.btn:active,.pc-icon-button:active,.mk-chip:active{
    transform:scale(.96)!important;
  }
  .fw-quiet-button,.btn,.pc-period-button{min-height:46px!important;border-radius:14px!important}
  .btn:not(.secondary):not(.danger){
    background:#e8ebdf!important;color:#141812!important;border-color:transparent!important;
  }
  .fw-periods,.fw-asset-filters,.mk-tabs,.ff-money-tabs{
    background:transparent!important;gap:6px!important;
  }
  .fw-periods button,.fw-asset-filters button,.mk-tabs button,.ff-money-tabs a{
    min-height:46px!important;border-radius:14px!important;
    color:#a9a9a9!important;
  }
  .fw-periods button[aria-pressed=true],.fw-asset-filters button[aria-pressed=true]{
    background:#292929!important;color:#f5f5f5!important;
  }

  /* Shared Plennor segmented control: one presented pill, drag commits on release. */
  [data-ff-segments=true]{
    --ff-segment-index:0;
    position:relative!important;
    display:grid!important;
    grid-template-columns:repeat(var(--ff-segment-count),minmax(0,1fr))!important;
    gap:0!important;
    padding:4px!important;
    min-height:54px!important;
    border:1px solid #333!important;
    border-radius:27px!important;
    background:#141414!important;
    overflow:hidden!important;
    touch-action:pan-y pinch-zoom!important;
    user-select:none!important;-webkit-user-select:none!important;
  }
  [data-ff-segments=true]>.ff-segment-pill{
    position:absolute;z-index:0;top:4px;bottom:4px;left:4px;
    width:calc((100% - 8px)/var(--ff-segment-count));
    border:1px solid #414141;border-radius:23px;background:#292929;
    transform:translate3d(calc(var(--ff-segment-index)*100%),0,0);
    transition:transform 280ms cubic-bezier(.2,.9,.24,1.12);
    pointer-events:none;
  }
  [data-ff-segments=true][data-ff-segment-dragging=true]>.ff-segment-pill{transition:none}
  [data-ff-segments=true]>a,[data-ff-segments=true]>button{
    position:relative!important;z-index:1!important;
    min-width:0!important;min-height:46px!important;
    margin:0!important;padding:8px 6px!important;
    border:0!important;border-radius:23px!important;background:transparent!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    color:#a9a9a9!important;text-align:center!important;text-decoration:none!important;
    font-size:14px!important;font-weight:500!important;white-space:nowrap!important;
    transition:color 140ms ease,transform 120ms ease!important;
  }
  [data-ff-segments=true]>a:active,[data-ff-segments=true]>button:active{transform:scale(.97)}
  [data-ff-segments=true]>a[aria-current=page],
  [data-ff-segments=true]>button[aria-pressed=true]{color:#f5f5f5!important}
  [data-ff-segments=true][style*="--ff-segment-count: 6"]>a,
  [data-ff-segments=true][style*="--ff-segment-count: 6"]>button{
    font-size:12px!important;padding-inline:3px!important;letter-spacing:-.02em!important;
  }
  input,textarea,select{
    font-size:16px!important;caret-color:#f5f5f5!important;
    -webkit-tap-highlight-color:transparent!important;
  }
  input,textarea,select,.fw-search input,.mk-search input{
    background:#1d1d1d!important;border-color:#414141!important;color:#fff!important;
  }
  button,a,[role=button]{-webkit-tap-highlight-color:transparent}
  button,.btn,.fw-text-link,.mk-back,.mk-quiet,.pc-link,.ff-money-file-label{
    transition:transform 120ms ease,background-color 140ms ease,border-color 140ms ease,color 140ms ease,opacity 140ms ease!important;
  }
  button:active,.btn:active,.ff-money-file-label:active{transform:scale(.97)}
  .fw-card a:active,.mk-surface a:active,.iv-panel a:active{opacity:.72}
  :focus-visible{outline:2px solid #d4d4d4!important;outline-offset:3px!important}

  /* Plennor-like sheets for FinFact dialogs. */
  dialog{
    color:#f3f3f3!important;background:#141414!important;
    border:1px solid #363636!important;
    box-shadow:0 24px 90px #0008!important;
  }
  dialog::backdrop{background:#000a!important;backdrop-filter:blur(5px)!important;-webkit-backdrop-filter:blur(5px)!important}
  .pc-dialog{
    width:min(560px,100vw)!important;max-width:560px!important;
    max-height:min(90dvh,900px)!important;
    margin:auto auto 0!important;
    border-radius:30px 30px 0 0!important;
    padding-bottom:max(12px,var(--ff-safe-bottom))!important;
  }
  .pc-dialog-head{
    position:relative!important;min-height:76px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    cursor:pointer!important;padding-top:18px!important;
  }
  .pc-dialog-head::before{
    content:"";position:absolute;top:10px;left:50%;transform:translateX(-50%);
    width:42px;height:5px;border-radius:999px;background:#5a5a5a;
  }
  .pc-dialog-head h2{margin:0!important;text-align:center!important}
  #pc-dialog #pc-close{display:none!important}

  /* Plennor composer geometry: 100px above the viewport bottom. */
  body[data-page=assistant] .fw-chat{padding-bottom:92px!important}
  body[data-page=assistant] .fw-chat-form{
    position:fixed!important;z-index:58!important;
    left:50%!important;right:auto!important;bottom:100px!important;
    transform:translateX(-50%)!important;
    width:min(calc(100% - 48px),560px)!important;max-width:560px!important;
    min-height:58px!important;margin:0!important;padding:7px 8px 7px 16px!important;
    display:flex!important;align-items:center!important;gap:8px!important;
    border:1px solid var(--ff-glass-border)!important;border-radius:999px!important;
    background:var(--ff-glass)!important;
    backdrop-filter:blur(18px) saturate(150%)!important;
    -webkit-backdrop-filter:blur(18px) saturate(150%)!important;
    box-shadow:var(--ff-glass-shadow)!important;
  }
  body[data-page=assistant] .fw-chat-form textarea{
    min-height:42px!important;max-height:112px!important;padding:10px 0!important;
    border:0!important;background:transparent!important;box-shadow:none!important;
    resize:none!important;color:#f5f5f5!important;
  }
  body[data-page=assistant] .fw-chat-form button{
    width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;
    padding:0!important;border:0!important;border-radius:999px!important;
    background:#e8ebdf!important;color:#141812!important;
    display:grid!important;place-items:center!important;
  }
  html[data-ff-keyboard-open] body[data-page=assistant] .fw-chat-form{
    bottom:max(12px,env(safe-area-inset-bottom,0px))!important;
  }
  html[data-ff-keyboard-open] body[data-page=assistant] #ff-navigation{
    opacity:0!important;pointer-events:none!important;
  }

  /* Page follows finger. Money participates too. */
  body[data-page=portfolio] #ff-page-host>main,
  body[data-page=money] #ff-page-host>main,
  body[data-page=payments] #ff-page-host>main,
  body[data-page=market] #ff-page-host>main,
  body[data-page=assistant] #ff-page-host>main{
    transform:translate3d(var(--ff-page-drag,0px),0,0);
    transition:transform 300ms cubic-bezier(.2,.82,.26,1),opacity 150ms ease;
  }
  body[data-page-swiping=true] #ff-page-host>main{transition:none!important;will-change:transform}

  .ff-route-loading{min-height:70vh!important;display:flex!important;align-items:center!important;justify-content:center!important}

  body[data-nav-direction=forward]:not([data-page-swiping=true]) #ff-page-host>main{
    animation:ff-plennor-forward .20s cubic-bezier(.2,.82,.26,1);
  }
  body[data-nav-direction=back]:not([data-page-swiping=true]) #ff-page-host>main{
    animation:ff-plennor-back .20s cubic-bezier(.2,.82,.26,1);
  }
  @keyframes ff-plennor-forward{from{opacity:.78;transform:translate3d(22px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
  @keyframes ff-plennor-back{from{opacity:.78;transform:translate3d(-22px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}

  @media(min-width:701px){
    #ff-page-host>.shell,#ff-page-host>main{padding-top:112px!important}
    .ff-nav{width:min(calc(100% - 64px),1180px)!important}
    .ff-nav #ff-navigation{width:560px!important}
    .ff-profile-popover{width:min(560px,calc(100vw - 64px))!important}
  }

  @media(prefers-reduced-motion:reduce){
    *,*::before,*::after{
      scroll-behavior:auto!important;
      animation-duration:.01ms!important;
      transition-duration:.01ms!important;
    }
  }
  @media(prefers-reduced-transparency:reduce),(prefers-contrast:more){
    .ff-nav .brand[data-ff-brand-scrolled],.ff-profile-menu>summary,.ff-nav #ff-navigation{
      background:#181818!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
    }
  }
}

@media(max-width:700px){
  .positive{color:#9fd2b7!important}
  .negative{color:#e0aaa4!important}
  .fw-text-link,.mk-back,.mk-quiet,.pc-link{color:#c8c8c8!important}
  .fw-periods button[aria-pressed=true],.fw-asset-filters button[aria-pressed=true]{color:#f5f5f5!important}
}


/* Public/auth surfaces use the same Plennor production material language. */
body:is([data-page="login"],[data-page="register"],[data-page="recover"],[data-page="landing"]){
  background:#080808!important;color:#f3f3f3!important;
}
body:is([data-page="login"],[data-page="register"],[data-page="recover"],[data-page="landing"]) .ambient{
  display:none!important;
}
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .auth{
  scrollbar-width:none!important;
  padding:max(20px,env(safe-area-inset-top,0px))
    max(24px,env(safe-area-inset-right,0px))
    max(20px,env(safe-area-inset-bottom,0px))
    max(24px,env(safe-area-inset-left,0px))!important;
}
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .auth::-webkit-scrollbar{display:none}
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .authbox{
  width:min(100%,520px)!important;
  padding:clamp(26px,5vw,42px)!important;
  border:1px solid #363636!important;border-radius:30px!important;
  background:#141414!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  box-shadow:0 24px 90px #0008!important;
}
.public-brand{
  color:#f5f5f5!important;font-size:22px!important;line-height:1!important;
  font-weight:700!important;letter-spacing:-.045em!important;
  padding:6px 0!important;text-decoration:none!important;
}
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .authbox h1{
  margin:26px 0 28px!important;
  color:#f5f5f5!important;font-size:clamp(40px,10vw,50px)!important;
  line-height:.96!important;font-weight:700!important;letter-spacing:-.055em!important;
}
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .field label,
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .field-hint,
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .authfoot,
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .check-row{
  color:#a9a9a9!important;
}
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) input:not([type=checkbox]){
  min-height:52px!important;border:1px solid #414141!important;border-radius:14px!important;
  background:#1d1d1d!important;color:#fff!important;box-shadow:none!important;
}
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) input:not([type=checkbox]):focus{
  border-color:#6a6a6a!important;outline:2px solid #8a8a8a!important;outline-offset:2px!important;
}
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .auth-submit{
  min-height:50px!important;border-radius:16px!important;border:0!important;
  background:#e8ebdf!important;color:#141812!important;font-weight:650!important;
  box-shadow:none!important;
}
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .auth-submit:active{
  transform:scale(.98)!important;
}
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .check-row input{
  border-color:#4a4a4a!important;background:#1d1d1d!important;
}
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .check-row input:checked{
  background:#e8ebdf!important;border-color:#e8ebdf!important;
}
body:is([data-page="login"],[data-page="register"],[data-page="recover"]) .confirm-banner{
  border-color:#3d4a39!important;background:#1c231a!important;border-radius:18px!important;
}
body[data-page="landing"] .welcome{
  min-height:100dvh!important;padding-top:max(24px,env(safe-area-inset-top,0px))!important;
}
body[data-page="landing"] .welcome-card{
  border:1px solid #303030!important;border-radius:30px!important;
  background:#141414!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  box-shadow:0 24px 90px #0008!important;
}
body[data-page="landing"] .welcome-card h1{color:#f5f5f5!important}
body[data-page="landing"] .welcome-card>p,
body[data-page="landing"] .welcome-points span{color:#a9a9a9!important}
body[data-page="landing"] .welcome-actions .btn:first-child{
  background:#e8ebdf!important;color:#141812!important;border-color:transparent!important;
}
body[data-page="landing"] .welcome-actions .btn.secondary{
  background:#1d1d1d!important;color:#f2f2f2!important;border-color:#414141!important;
}


/* Remove legacy FinFact blue chrome that would leak through the Plennor layer. */
#ff-app-shell .mk-quiet,
#ff-app-shell .mk-back,
#ff-app-shell .mk-section-head a,
#ff-app-shell .fw-text-link,
#ff-app-shell .pc-link,
#ff-app-shell .iv-back,
#ff-app-shell .ff-evidence summary,
#ff-app-shell .ff-action-links a{
  color:#c8c8c8!important;
}
#ff-app-shell .ff-paper-link:hover strong,
#ff-app-shell .iv-alloc button:hover{
  color:#f5f5f5!important;
}
#ff-app-shell .mk-search:focus-within{border-color:#666!important}
#ff-app-shell .mk-check input,
#ff-app-shell .mk-select-cell input{accent-color:#d4d4d4!important}
#ff-app-shell .mk-chip[aria-pressed=true]{
  color:#f5f5f5!important;background:#292929!important;border-color:#414141!important;
}
#ff-app-shell [data-ff-segments=true]>button::after,
#ff-app-shell [data-ff-segments=true]>a::after{display:none!important}
#ff-app-shell .pc-month[aria-pressed=true]>span,
#ff-app-shell .iv-status,
#ff-app-shell .iv-blue{color:#d3d3d3!important}
#ff-app-shell .pc-dot.coupon,
#ff-app-shell .iv-key.expected{background:#a6a6ac!important}
#ff-app-shell .pc-dot.dividend{background:#b9afc8!important}
#ff-app-shell .pc-dot.principal,
#ff-app-shell .iv-key{background:#9fbdae!important}
#ff-app-shell .pc-avatar{
  background:#242424!important;color:#e1e1e1!important;
}
#ff-app-shell .pc-avatar.dividend{background:#29262d!important;color:#ddd4e5!important}
#ff-app-shell .pc-avatar.principal{background:#222a27!important;color:#cfe0d8!important}
#ff-app-shell .iv-day:hover,
#ff-app-shell .iv-month:hover{
  border-color:#555!important;background:#202020!important;
}
#ff-app-shell .iv-day[aria-pressed=true]{
  border-color:#666!important;background:#292929!important;
}

.ff-profile-scrim{
  position:fixed!important;inset:0!important;z-index:78!important;
  display:block!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;
  border:0!important;border-radius:0!important;background:rgba(0,0,0,.66)!important;
  backdrop-filter:blur(5px)!important;-webkit-backdrop-filter:blur(5px)!important;
  cursor:default!important;
}
.ff-profile-menu[open]>.ff-profile-popover{z-index:80!important}
.ff-profile-menu[open]>summary{position:relative!important;z-index:81!important}
.ff-profile-menu[open]::before{display:none!important}

/* Public surfaces use the same Plennor material language. */
.welcome,.legal-shell{color:#f3f3f3}
.welcome .public-brand,.legal-shell .public-brand,.legal-brand .public-brand{
  color:#f5f5f5!important;font-size:22px!important;line-height:1!important;
  font-weight:700!important;letter-spacing:-.045em!important;text-decoration:none!important;
}
.welcome-card{
  border:1px solid #303030!important;border-radius:26px!important;
  background:#141414!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  box-shadow:none!important;
}
.welcome-card>p,.welcome-points span{color:#a9a9a9!important}
.welcome-points{border-top-color:#303030!important}
.legal-document{
  border:1px solid #303030!important;border-radius:26px!important;
  background:#141414!important;box-shadow:none!important;
}
.legal-section+.legal-section,.legal-toc,.legal-operator,.legal-table-wrap{border-color:#303030!important}
.legal-notice,.legal-warning,.legal-operator{background:#141414!important}
.legal-table th{background:#1d1d1d!important}


/* Portfolio — compact Plennor composition. */
body[data-page=portfolio] .fw-portfolio-top{
  gap:16px!important;
  margin-bottom:20px!important;
}
body[data-page=portfolio] .fw-balance{
  padding:24px!important;
}
body[data-page=portfolio] .fw-balance-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  margin-bottom:18px!important;
}
body[data-page=portfolio] .fw-balance-head .fw-widget-label{
  margin:0!important;
}
body[data-page=portfolio] .fw-balance-change{
  min-height:0!important;
  margin-top:8px!important;
  gap:0!important;
  font-size:15px!important;
}
body[data-page=portfolio] .fw-period-picker{
  position:relative!important;
  z-index:16!important;
  flex:none!important;
}
body[data-page=portfolio] .fw-period-picker>summary{
  list-style:none!important;
  min-height:42px!important;
  padding:0 14px!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  border:1px solid var(--ff-glass-border)!important;
  border-radius:999px!important;
  background:var(--ff-glass)!important;
  color:#f2f2f2!important;
  box-shadow:var(--ff-glass-shadow)!important;
  backdrop-filter:blur(18px) saturate(150%)!important;
  -webkit-backdrop-filter:blur(18px) saturate(150%)!important;
  font-size:14px!important;
  font-weight:500!important;
  cursor:pointer!important;
  user-select:none!important;
  -webkit-user-select:none!important;
}
body[data-page=portfolio] .fw-period-picker>summary::-webkit-details-marker{
  display:none!important;
}
body[data-page=portfolio] .fw-period-picker>summary::after{
  content:""!important;
  width:7px!important;
  height:7px!important;
  border-right:1.5px solid #9d9d9d!important;
  border-bottom:1.5px solid #9d9d9d!important;
  transform:rotate(45deg) translate(-1px,-1px)!important;
  transform-origin:center!important;
  transition:transform 160ms ease!important;
}
body[data-page=portfolio] .fw-period-picker[open]>summary::after{
  transform:rotate(225deg) translate(-1px,-1px)!important;
}
body[data-page=portfolio] .fw-period-menu{
  position:absolute!important;
  top:calc(100% + 8px)!important;
  right:0!important;
  width:190px!important;
  padding:6px!important;
  display:grid!important;
  gap:2px!important;
  border:1px solid var(--ff-glass-border)!important;
  border-radius:18px!important;
  background:rgba(24,24,24,.88)!important;
  box-shadow:0 16px 44px rgba(0,0,0,.34),var(--ff-glass-shadow)!important;
  backdrop-filter:blur(20px) saturate(150%)!important;
  -webkit-backdrop-filter:blur(20px) saturate(150%)!important;
}
body[data-page=portfolio] .fw-period-menu>button{
  min-height:42px!important;
  width:100%!important;
  padding:0 12px!important;
  border:0!important;
  border-radius:12px!important;
  background:transparent!important;
  color:#b7b7b7!important;
  font:inherit!important;
  font-size:14px!important;
  text-align:left!important;
}
body[data-page=portfolio] .fw-period-menu>button[aria-pressed=true]{
  background:#292929!important;
  color:#f5f5f5!important;
}
body[data-page=portfolio] .fw-period-menu>button:active{
  transform:scale(.98)!important;
}
body[data-page=portfolio] .fc-chart{
  margin-top:16px!important;
}
body[data-page=portfolio] .fc-readout{
  min-height:24px!important;
  gap:4px 12px!important;
}
body[data-page=portfolio] .fc-readout strong{
  color:#e8e8e8!important;
  font-size:18px!important;
  font-weight:520!important;
}
body[data-page=portfolio] .fc-readout>span{
  color:#858585!important;
  font-size:12px!important;
}
body[data-page=portfolio] .fc-help{
  display:none!important;
}
body[data-page=portfolio] .fc-line{
  stroke:#daddd3!important;
}
body[data-page=portfolio] .fc-area{
  fill:rgba(232,235,223,.035)!important;
}
body[data-page=portfolio] .fc-dot{
  fill:#e8ebdf!important;
  stroke:#141414!important;
}
body[data-page=portfolio] .fc-cross{
  stroke:rgba(218,221,211,.35)!important;
}
body[data-page=portfolio] .fc-axis{
  fill:#777!important;
}
body[data-page=portfolio] .fw-allocation{
  height:6px!important;
  margin:18px 0 10px!important;
  gap:3px!important;
}
body[data-page=portfolio] .fw-allocation-labels{
  gap:8px 16px!important;
  font-size:12.5px!important;
  line-height:1.35!important;
}
body[data-page=portfolio] .fw-allocation-labels b{
  color:#d0d0d0!important;
}
body[data-page=portfolio] .fw-tone-0{background:#9da79c!important}
body[data-page=portfolio] .fw-tone-1{background:#7f9f94!important}
body[data-page=portfolio] .fw-tone-2{background:#978da6!important}
body[data-page=portfolio] .fw-tone-3{background:#a18f78!important}
body[data-page=portfolio] .fw-tone-4{background:#81989b!important}
body[data-page=portfolio] .fw-tone-5{background:#858585!important}


/* Portfolio interaction cleanup: quiet chart chrome and non-overlapping asset filters. */
body[data-page=portfolio] .fc-readout{
  display:none!important;
}
body[data-page=portfolio] .fc-chart{
  margin-top:22px!important;
}
body[data-page=portfolio] .fc-tooltip{
  background:rgba(24,24,24,.90)!important;
  border:1px solid var(--ff-glass-border)!important;
  border-radius:18px!important;
  box-shadow:0 16px 44px rgba(0,0,0,.30),var(--ff-glass-shadow)!important;
  backdrop-filter:blur(20px) saturate(150%)!important;
  -webkit-backdrop-filter:blur(20px) saturate(150%)!important;
  color:#f1f1f1!important;
}
body[data-page=portfolio] .fc-tooltip strong{
  color:#f1f1f1!important;
}
body[data-page=portfolio] .fc-tooltip span,
body[data-page=portfolio] .fc-tooltip small{
  color:#a9a9a9!important;
}
body[data-page=portfolio] .fw-asset-filters{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  padding:2px 0 7px!important;
  margin:0 0 14px!important;
  background:transparent!important;
  scrollbar-width:none!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-x!important;
}
body[data-page=portfolio] .fw-asset-filters::-webkit-scrollbar{
  display:none!important;
}
body[data-page=portfolio] .fw-asset-filters>button{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:max-content!important;
  min-height:40px!important;
  margin:0!important;
  padding:8px 14px!important;
  border:1px solid var(--ff-glass-border)!important;
  border-radius:999px!important;
  background:var(--ff-glass)!important;
  box-shadow:var(--ff-glass-shadow)!important;
  backdrop-filter:blur(18px) saturate(150%)!important;
  -webkit-backdrop-filter:blur(18px) saturate(150%)!important;
  color:#a9a9a9!important;
  font-size:14px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
body[data-page=portfolio] .fw-asset-filters>button[aria-pressed=true]{
  background:#292929!important;
  border-color:#414141!important;
  color:#f5f5f5!important;
}
@media(max-width:700px){
  body[data-page=portfolio] .fw-asset-filters{
    margin-inline:0!important;
    padding-bottom:6px!important;
  }
  body[data-page=portfolio] .fw-asset-filters>button{
    min-height:38px!important;
    padding:8px 13px!important;
    font-size:13px!important;
  }
}

@media(max-width:700px){
  body[data-page=portfolio] .fw-portfolio-top{gap:14px!important}
  body[data-page=portfolio] .fw-balance{padding:20px 18px!important}
  body[data-page=portfolio] .fw-balance-head{margin-bottom:16px!important}
  body[data-page=portfolio] .fw-period-picker>summary{
    min-height:40px!important;
    padding-inline:13px!important;
    font-size:13px!important;
  }
  body[data-page=portfolio] .fw-period-menu{
    width:min(220px,calc(100vw - 72px))!important;
  }
  body[data-page=portfolio] .fw-balance-value{
    font-size:40px!important;
  }
  body[data-page=portfolio] .fc-readout strong{font-size:17px!important}
}


/* Portfolio reference pass — denser typography, glass controls, card rows. */
body[data-page=portfolio] .fw-card{
  background:#141414!important;
  border-color:#343434!important;
  border-radius:28px!important;
  box-shadow:0 18px 50px rgba(0,0,0,.18)!important;
}
body[data-page=portfolio] .fw-balance{
  padding:28px 30px 30px!important;
}
body[data-page=portfolio] .fw-balance-head{
  justify-content:space-between!important;
  align-items:center!important;
  margin-bottom:18px!important;
}
body[data-page=portfolio] .fw-balance-title{
  color:#a9a9a9!important;
  font-size:17px!important;
  font-weight:500!important;
  letter-spacing:-.025em!important;
}
body[data-page=portfolio] .fw-balance-value{
  font-size:clamp(44px,6vw,66px)!important;
  line-height:1.02!important;
  font-weight:620!important;
  letter-spacing:-.06em!important;
  color:#f5f5f5!important;
  white-space:nowrap!important;
}
body[data-page=portfolio] .fw-balance-change{
  margin-top:18px!important;
  font-size:22px!important;
  font-weight:500!important;
  letter-spacing:-.025em!important;
}
body[data-page=portfolio] .fc-grid{
  display:none!important;
}
body[data-page=portfolio] .fc-line{
  stroke:#d7e9df!important;
  stroke-width:3!important;
}
body[data-page=portfolio] .fc-area{
  fill:rgba(115,165,143,.16)!important;
}
body[data-page=portfolio] .fc-dot{
  fill:#d8eee3!important;
  stroke:#5d8f7a!important;
  stroke-width:4!important;
}
body[data-page=portfolio] .fc-axis{
  fill:#8c8c8c!important;
}
body[data-page=portfolio] .fw-allocation-panel{
  margin-top:22px!important;
  padding:16px 18px 18px!important;
  border:1px solid #2f2f2f!important;
  border-radius:22px!important;
  background:rgba(18,18,18,.78)!important;
}
body[data-page=portfolio] .fw-allocation-panel .fw-allocation{
  margin:0 0 16px!important;
  height:10px!important;
  gap:4px!important;
}
body[data-page=portfolio] .fw-allocation-stats{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(110px,1fr))!important;
}
body[data-page=portfolio] .fw-allocation-item{
  min-width:0!important;
  padding:0 16px!important;
  border-left:1px solid #303030!important;
}
body[data-page=portfolio] .fw-allocation-item:first-child{padding-left:0!important;border-left:0!important}
body[data-page=portfolio] .fw-allocation-item:last-child{padding-right:0!important}
body[data-page=portfolio] .fw-allocation-name{
  display:flex!important;align-items:center!important;gap:8px!important;
  color:#a7a7a7!important;font-size:13px!important;line-height:1.3!important;white-space:nowrap!important;
}
body[data-page=portfolio] .fw-allocation-name i{
  width:10px!important;height:10px!important;flex:none!important;border-radius:50%!important;
}
body[data-page=portfolio] .fw-allocation-item>strong{
  display:block!important;margin-top:7px!important;font-size:24px!important;line-height:1!important;
  font-weight:560!important;letter-spacing:-.045em!important;color:#f0f0f0!important;
}
body[data-page=portfolio] .fw-allocation-item>small{
  display:block!important;margin-top:7px!important;color:#858585!important;font-size:12px!important;white-space:nowrap!important;
}
body[data-page=portfolio] .fw-assets{margin-top:26px!important}
body[data-page=portfolio] .fw-assets-heading{margin-bottom:18px!important}
body[data-page=portfolio] .fw-assets-heading h2{
  display:flex!important;align-items:center!important;gap:12px!important;margin:0!important;color:#f4f4f4!important;
  font-size:44px!important;line-height:1!important;font-weight:650!important;letter-spacing:-.06em!important;
}
body[data-page=portfolio] .fw-assets-count{
  display:grid!important;place-items:center!important;min-width:38px!important;height:38px!important;padding:0 10px!important;
  border:1px solid #373737!important;border-radius:999px!important;background:#1d1d1d!important;color:#b7b7b7!important;
  font-size:15px!important;font-weight:500!important;letter-spacing:0!important;
}
body[data-page=portfolio] .fw-assets-heading p{
  margin:10px 0 0!important;color:#858585!important;font-size:15px!important;
}
body[data-page=portfolio] .fw-assets-search{
  position:relative!important;display:block!important;width:100%!important;max-width:none!important;margin-bottom:14px!important;
}
body[data-page=portfolio] .fw-assets-search::before{
  content:""!important;position:absolute!important;left:20px!important;top:50%!important;width:13px!important;height:13px!important;
  border:2px solid #999!important;border-radius:50%!important;transform:translateY(-60%)!important;z-index:2!important;pointer-events:none!important;
}
body[data-page=portfolio] .fw-assets-search::after{
  content:""!important;position:absolute!important;left:33px!important;top:55%!important;width:8px!important;height:2px!important;
  border-radius:2px!important;background:#999!important;transform:rotate(45deg)!important;transform-origin:left center!important;z-index:2!important;pointer-events:none!important;
}
body[data-page=portfolio] .fw-assets-search input{
  width:100%!important;min-height:54px!important;padding:12px 18px 12px 52px!important;border:1px solid #383838!important;
  border-radius:20px!important;background:#171717!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important;color:#f2f2f2!important;font-size:16px!important;
}
body[data-page=portfolio] .fw-assets-search input::placeholder{color:#777!important}
body[data-page=portfolio] .fw-asset-filters{margin:0 0 18px!important;padding:0 0 4px!important;gap:10px!important}
body[data-page=portfolio] .fw-asset-filters>button{
  min-height:44px!important;padding:9px 18px!important;border-color:#343434!important;background:#171717!important;box-shadow:none!important;
}
body[data-page=portfolio] .fw-asset-filters>button[aria-pressed=true]{
  border-color:rgba(146,196,175,.46)!important;background:rgba(89,135,116,.20)!important;color:#cfe6db!important;
}
body[data-page=portfolio] .fw-table-wrap{
  overflow:hidden!important;border:1px solid #343434!important;border-radius:26px!important;background:#141414!important;box-shadow:0 18px 50px rgba(0,0,0,.14)!important;
}
body[data-page=portfolio] .fw-assets-table{margin:0!important}
body[data-page=portfolio] .fw-assets-table tr{position:relative!important}
body[data-page=portfolio] .fw-assets-table td{border-bottom:1px solid #292929!important}
body[data-page=portfolio] .fw-assets-table tr:last-child td{border-bottom:0!important}
body[data-page=portfolio] .fw-asset-kind{
  display:inline-flex!important;align-items:center!important;width:max-content!important;margin-top:7px!important;padding:4px 9px!important;
  border:1px solid #303030!important;border-radius:999px!important;background:#191919!important;color:#8d8d8d!important;font-size:11px!important;line-height:1!important;font-style:normal!important;
}
body[data-page=portfolio] .fw-assets-table .positive{color:#79c8a6!important}
body[data-page=portfolio] .fw-assets-table .negative{color:#ee718b!important}
@media(max-width:700px){
  body[data-page=portfolio] .fw-workspace{padding-top:18px!important}
  body[data-page=portfolio] .fw-heading{height:0!important;min-height:0!important;margin:0!important;overflow:visible!important}
  body[data-page=portfolio] .fw-heading h1{display:none!important}
  body[data-page=portfolio] #fw-sync{
    position:fixed!important;z-index:72!important;top:max(14px,env(safe-area-inset-top,0px))!important;right:82px!important;
    width:46px!important;height:46px!important;min-height:46px!important;padding:0!important;display:grid!important;place-items:center!important;
    border-radius:50%!important;border:1px solid var(--ff-glass-border)!important;background:var(--ff-glass)!important;box-shadow:var(--ff-glass-shadow)!important;
    backdrop-filter:blur(18px) saturate(150%)!important;-webkit-backdrop-filter:blur(18px) saturate(150%)!important;color:#f2f2f2!important;font-size:24px!important;line-height:1!important;
  }
  body[data-page=portfolio] #fw-sync>span{display:none!important}
  body[data-page=portfolio] .fw-balance{padding:22px 20px 20px!important;border-radius:30px!important}
  body[data-page=portfolio] .fw-balance-head{margin-bottom:20px!important}
  body[data-page=portfolio] .fw-period-picker>summary{min-height:46px!important;padding:0 18px!important;font-size:16px!important}
  body[data-page=portfolio] .fw-balance-value{
    font-size:clamp(36px,10.2vw,44px)!important;
    line-height:1.04!important;
    letter-spacing:-.06em!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
  body[data-page=portfolio] .fw-balance-change{
    margin-top:12px!important;
    font-size:18px!important;
  }
  body[data-page=portfolio] .fc-chart{
    margin-top:18px!important;
  }
  body[data-page=portfolio] .fc-plot{
    margin-top:0!important;
  }
  body[data-page=portfolio] .fc-svg{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:1000 / 300!important;
  }
  body[data-page=portfolio] .fw-allocation-panel{
    margin:12px -6px -4px!important;
    padding:12px 14px 14px!important;
    border-radius:22px!important;
  }
  body[data-page=portfolio] .fw-allocation-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  body[data-page=portfolio] .fw-allocation-item{padding:0 10px!important}
  body[data-page=portfolio] .fw-allocation-name{gap:6px!important;font-size:11px!important;white-space:normal!important}
  body[data-page=portfolio] .fw-allocation-item>strong{font-size:20px!important}
  body[data-page=portfolio] .fw-allocation-item>small{overflow:hidden!important;text-overflow:ellipsis!important;font-size:10.5px!important}
  body[data-page=portfolio] .fw-next{border-radius:28px!important}
  body[data-page=portfolio] .fw-assets{margin-top:30px!important}
  body[data-page=portfolio] .fw-assets-heading h2{font-size:42px!important}
  body[data-page=portfolio] .fw-assets-count{min-width:36px!important;height:36px!important;font-size:14px!important}
  body[data-page=portfolio] .fw-assets-heading p{font-size:14px!important}
  body[data-page=portfolio] .fw-assets-search input{min-height:56px!important;border-radius:20px!important}
  body[data-page=portfolio] .fw-asset-filters{margin-inline:0!important;padding-bottom:5px!important}
  body[data-page=portfolio] .fw-asset-filters>button{min-height:42px!important;padding:8px 16px!important;font-size:13px!important}
  body[data-page=portfolio] .fw-table-wrap{border-radius:28px!important}
  body[data-page=portfolio] .fw-assets-table tr{
    display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto!important;gap:4px 16px!important;padding:20px 16px!important;border:0!important;
  }
  body[data-page=portfolio] .fw-assets-table td{border:0!important;padding:0!important}
  body[data-page=portfolio] .fw-assets-table td:first-child{grid-column:1!important;grid-row:1/3!important;width:auto!important;margin:0!important;padding-right:4px!important}
  body[data-page=portfolio] .fw-assets-table td:nth-child(2){grid-column:2!important;grid-row:1!important;min-width:118px!important;text-align:right!important;padding:0!important}
  body[data-page=portfolio] .fw-assets-table td:nth-child(3){grid-column:2!important;grid-row:2!important;align-self:start!important;text-align:right!important;padding:0!important}
  body[data-page=portfolio] .fw-assets-table td:nth-child(3)::before{display:none!important}
  body[data-page=portfolio] .fw-assets-table .ff-paper-link{align-items:flex-start!important;gap:12px!important}
  body[data-page=portfolio] .fw-assets-table .ff-avatar{width:52px!important;height:52px!important;min-width:52px!important}
  body[data-page=portfolio] .fw-assets-table td:first-child strong{font-size:16px!important;line-height:1.25!important}
  body[data-page=portfolio] .fw-assets-table td:first-child small{margin-top:5px!important;color:#858585!important;font-size:12px!important}
  body[data-page=portfolio] .fw-assets-table td:nth-child(2)>strong{font-size:16px!important;line-height:1.2!important}
  body[data-page=portfolio] .fw-assets-table td:nth-child(2)>small{margin-top:5px!important;font-size:11.5px!important}
  body[data-page=portfolio] .fw-assets-table td:nth-child(3){font-size:14px!important}
  body[data-page=portfolio] .fw-assets-table td:nth-child(3)>small{display:inline!important;margin-left:7px!important;font-size:12px!important}
  body[data-page=portfolio] .fw-assets-table tr+tr::before{
    content:""!important;position:absolute!important;left:16px!important;right:16px!important;top:0!important;height:1px!important;background:#292929!important;
  }
  body[data-page=portfolio] .fw-updated{display:none!important}
}

/* Unified route loading: one loader, then one complete page reveal. */
#ff-page-host{
  position:relative!important;
}
#ff-page-host>.ff-page-stage{
  visibility:hidden!important;
  pointer-events:none!important;
}
#ff-page-host>.ff-page-gate{
  position:absolute!important;
  inset:0!important;
  z-index:40!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  display:grid!important;
  place-items:center!important;
  background:var(--ff-page)!important;
  pointer-events:none!important;
}
#ff-page-host>.ff-page-gate .ff-wheel{
  width:30px!important;
  height:30px!important;
  border-width:3px!important;
  border-color:rgba(255,255,255,.12)!important;
  border-top-color:rgba(255,255,255,.88)!important;
}
body[data-page=portfolio] .fw-balance-title,
body[data-page=portfolio] .fw-next>.fw-widget-label{
  color:#f5f5f5!important;
  font-size:18px!important;
  line-height:1.15!important;
  font-weight:700!important;
  letter-spacing:-.035em!important;
}

/* Loading lock: while the single route loader is visible, the page cannot scroll or rubber-band. */
html:has(.ff-boot),
body:has(.ff-boot){
  overflow:hidden!important;
  overscroll-behavior:none!important;
  touch-action:none!important;
}
body:has(.ff-boot){
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
}
#ff-page-host[aria-busy="true"]{
  overflow:hidden!important;
  overflow-x:hidden!important;
  overflow-y:hidden!important;
  touch-action:none!important;
  overscroll-behavior:none!important;
  -webkit-overflow-scrolling:auto!important;
  scroll-behavior:auto!important;
}
#ff-page-host[aria-busy="true"]>.ff-page-gate{
  position:fixed!important;
  inset:0!important;
  z-index:45!important;
}


/* Login screen lock: no page scrolling or iOS rubber-band. */
html:has(body[data-page="login"]),
body[data-page="login"]{
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
body[data-page="login"]{
  position:fixed!important;
  inset:0!important;
  touch-action:manipulation!important;
}
body[data-page="login"] .auth{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100dvh!important;
  min-height:0!important;
  margin:0!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
  touch-action:manipulation!important;
}
body[data-page="login"] .authbox{
  max-height:calc(100dvh - max(32px,env(safe-area-inset-top,0px)) - max(32px,env(safe-area-inset-bottom,0px)))!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:none!important;
}
body[data-page="login"] .authbox::-webkit-scrollbar{
  display:none!important;
}


/* Nearest payment — reference composition. */
body[data-page=portfolio] .fw-next{
  display:flex!important;
  flex-direction:column!important;
  gap:0!important;
  padding:28px!important;
  overflow:hidden!important;
}
body[data-page=portfolio] .fw-next>.fw-widget-label{
  margin:0 0 26px!important;
  color:#f5f5f5!important;
  font-size:22px!important;
  line-height:1.05!important;
  font-weight:700!important;
  letter-spacing:-.045em!important;
}
body[data-page=portfolio] .fw-next-hero{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:18px!important;
  margin-bottom:24px!important;
}
body[data-page=portfolio] .fw-next-date{
  min-width:0!important;
  margin:0!important;
  display:grid!important;
  gap:0!important;
  color:#f5f5f5!important;
  letter-spacing:-.055em!important;
}
body[data-page=portfolio] .fw-next-date>strong{
  font-size:58px!important;
  line-height:.9!important;
  font-weight:650!important;
}
body[data-page=portfolio] .fw-next-date>span{
  margin-top:8px!important;
  color:#c9c9c9!important;
  font-size:25px!important;
  line-height:1!important;
  font-weight:450!important;
  letter-spacing:-.045em!important;
}
body[data-page=portfolio] .fw-next-amount{
  min-width:max-content!important;
  padding:16px 20px!important;
  border:1px solid rgba(133,197,174,.18)!important;
  border-radius:22px!important;
  background:linear-gradient(110deg,rgba(24,24,24,.88),rgba(43,83,69,.42))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 10px 30px rgba(0,0,0,.16)!important;
  color:#f5f5f5!important;
  font-size:24px!important;
  line-height:1!important;
  font-weight:650!important;
  letter-spacing:-.04em!important;
  text-align:center!important;
}
body[data-page=portfolio] .fw-next-security,
body[data-page=portfolio] .fw-next-calendar{
  text-decoration:none!important;
  color:#f5f5f5!important;
  border:1px solid #2f2f2f!important;
  background:rgba(17,17,17,.78)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important;
}
body[data-page=portfolio] .fw-next-security{
  min-height:92px!important;
  padding:16px 18px!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:15px!important;
  border-radius:24px!important;
}
body[data-page=portfolio] .fw-next-security .ff-avatar{
  width:58px!important;
  height:58px!important;
  min-width:58px!important;
  flex-basis:58px!important;
  font-size:18px!important;
}
body[data-page=portfolio] .fw-next-security-copy{
  min-width:0!important;
  display:grid!important;
  gap:5px!important;
}
body[data-page=portfolio] .fw-next-security-copy>strong{
  min-width:0!important;
  color:#f5f5f5!important;
  font-size:18px!important;
  line-height:1.25!important;
  font-weight:560!important;
  letter-spacing:-.025em!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body[data-page=portfolio] .fw-next-security-copy>small{
  color:#999!important;
  font-size:14px!important;
  line-height:1.2!important;
}
body[data-page=portfolio] .fw-next-chevron,
body[data-page=portfolio] .fw-next-calendar>i{
  width:11px!important;
  height:11px!important;
  border-top:2px solid #aaa!important;
  border-right:2px solid #aaa!important;
  transform:rotate(45deg)!important;
  flex:none!important;
}
body[data-page=portfolio] .fw-next-calendar{
  min-height:62px!important;
  margin-top:14px!important;
  padding:0 20px!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:14px!important;
  border-radius:22px!important;
}
body[data-page=portfolio] .fw-next-calendar>svg{
  width:25px!important;
  height:25px!important;
  fill:none!important;
  stroke:#89d5c3!important;
  stroke-width:1.7!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
body[data-page=portfolio] .fw-next-calendar>span{
  color:#f5f5f5!important;
  font-size:17px!important;
  font-weight:520!important;
  letter-spacing:-.02em!important;
}
body[data-page=portfolio] .fw-next-empty{
  min-height:126px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:7px!important;
}
body[data-page=portfolio] .fw-next-empty>strong{
  color:#f5f5f5!important;
  font-size:22px!important;
  font-weight:600!important;
}
body[data-page=portfolio] .fw-next-empty>span{
  color:#999!important;
  font-size:14px!important;
}

@media(max-width:700px){
  body[data-page=portfolio] .fw-next{
    padding:18px!important;
    border-radius:28px!important;
  }
  body[data-page=portfolio] .fw-next>.fw-widget-label{
    margin-bottom:15px!important;
    font-size:20px!important;
    line-height:1!important;
    font-weight:700!important;
  }
  body[data-page=portfolio] .fw-next-hero{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    gap:12px!important;
    margin-bottom:14px!important;
  }
  body[data-page=portfolio] .fw-next-date{
    flex:0 0 auto!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    margin:0!important;
  }
  body[data-page=portfolio] .fw-next-date>strong{
    font-size:46px!important;
    line-height:.9!important;
  }
  body[data-page=portfolio] .fw-next-date>span{
    margin-top:6px!important;
    font-size:20px!important;
    line-height:1!important;
  }
  body[data-page=portfolio] .fw-next-amount{
    flex:0 0 auto!important;
    align-self:flex-start!important;
    width:auto!important;
    min-width:max-content!important;
    max-width:calc(100% - 132px)!important;
    min-height:64px!important;
    margin:0!important;
    padding:0 16px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:20px!important;
    font-size:15px!important;
    line-height:1!important;
    letter-spacing:-.025em!important;
    white-space:nowrap!important;
  }
  body[data-page=portfolio] .fw-next-security{
    min-height:78px!important;
    padding:12px 14px!important;
    gap:11px!important;
    border-radius:21px!important;
  }
  body[data-page=portfolio] .fw-next-security .ff-avatar{
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    flex-basis:48px!important;
    font-size:16px!important;
  }
  body[data-page=portfolio] .fw-next-security-copy{
    gap:3px!important;
  }
  body[data-page=portfolio] .fw-next-security-copy>strong{
    font-size:15.5px!important;
    line-height:1.16!important;
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
  }
  body[data-page=portfolio] .fw-next-security-copy>small{
    font-size:12.5px!important;
  }
  body[data-page=portfolio] .fw-next-chevron,
  body[data-page=portfolio] .fw-next-calendar>i{
    width:9px!important;
    height:9px!important;
    border-width:1.7px!important;
  }
  body[data-page=portfolio] .fw-next-calendar{
    min-height:54px!important;
    margin-top:10px!important;
    padding-inline:15px!important;
    gap:12px!important;
    border-radius:19px!important;
  }
  body[data-page=portfolio] .fw-next-calendar>svg{
    width:22px!important;
    height:22px!important;
  }
  body[data-page=portfolio] .fw-next-calendar>span{
    font-size:15px!important;
  }
}


/* Portfolio hero — latest reference composition. */
body[data-page=portfolio] .fw-balance{
  padding:26px!important;
  border-radius:30px!important;
}
body[data-page=portfolio] .fw-balance-head{
  margin-bottom:22px!important;
}
body[data-page=portfolio] .fw-balance-title{
  color:#f5f5f5!important;
  font-size:42px!important;
  line-height:.95!important;
  font-weight:720!important;
  letter-spacing:-.065em!important;
}
body[data-page=portfolio] .fw-period-picker>summary{
  min-height:50px!important;
  padding:0 18px!important;
  border-radius:999px!important;
  font-size:18px!important;
  font-weight:560!important;
}
body[data-page=portfolio] .fw-balance-value{
  margin-top:2px!important;
  font-size:clamp(52px,7vw,74px)!important;
  line-height:.98!important;
  font-weight:650!important;
  letter-spacing:-.065em!important;
}
body[data-page=portfolio] .fw-balance-change{
  margin-top:14px!important;
  font-size:22px!important;
  line-height:1!important;
}
body[data-page=portfolio] #fw-balance-chart{
  margin-top:22px!important;
  padding:12px 12px 6px!important;
  border:1px solid #303030!important;
  border-radius:22px!important;
  background:rgba(15,15,15,.66)!important;
  overflow:hidden!important;
}
body[data-page=portfolio] #fw-balance-chart .fc-chart{
  margin:0!important;
}
body[data-page=portfolio] #fw-balance-chart .fc-plot{
  margin:0!important;
}
body[data-page=portfolio] #fw-balance-chart .fc-svg{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:1000 / 300!important;
}
body[data-page=portfolio] #fw-balance-chart .fc-grid{
  display:block!important;
  stroke:rgba(255,255,255,.11)!important;
  stroke-dasharray:6 6!important;
}
body[data-page=portfolio] #fw-balance-chart .fc-line{
  stroke:#d8ebe1!important;
  stroke-width:3.2!important;
}
body[data-page=portfolio] #fw-balance-chart .fc-area{
  fill:rgba(116,164,144,.15)!important;
}
body[data-page=portfolio] #fw-balance-chart .fc-dot{
  fill:#d7eee2!important;
  stroke:#668f7d!important;
  stroke-width:3!important;
}
body[data-page=portfolio] #fw-balance-chart .fc-axis{
  fill:#909090!important;
}
body[data-page=portfolio] .fw-allocation-panel{
  margin-top:18px!important;
  padding:18px 18px 14px!important;
  border:1px solid #303030!important;
  border-radius:22px!important;
  background:rgba(15,15,15,.66)!important;
}
body[data-page=portfolio] .fw-allocation-stats{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:stretch!important;
}
body[data-page=portfolio] .fw-allocation-item{
  min-width:0!important;
  padding:0 18px!important;
  border-left:1px solid #313131!important;
}
body[data-page=portfolio] .fw-allocation-item:first-child{
  padding-left:0!important;
  border-left:0!important;
}
body[data-page=portfolio] .fw-allocation-item:last-child{
  padding-right:0!important;
}
body[data-page=portfolio] .fw-allocation-name{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  color:#a8a8a8!important;
  font-size:15px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
body[data-page=portfolio] .fw-allocation-name i{
  width:13px!important;
  height:13px!important;
}
body[data-page=portfolio] .fw-allocation-item>strong{
  display:block!important;
  margin-top:10px!important;
  color:#f5f5f5!important;
  font-size:32px!important;
  line-height:.95!important;
  font-weight:650!important;
  letter-spacing:-.05em!important;
}
body[data-page=portfolio] .fw-allocation-item>small{
  display:block!important;
  margin-top:10px!important;
  color:#8d8d8d!important;
  font-size:13px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
body[data-page=portfolio] .fw-allocation-panel .fw-allocation{
  order:2!important;
  height:10px!important;
  margin:20px 0 0!important;
  gap:4px!important;
  border-radius:999px!important;
}
body[data-page=portfolio] .fw-allocation-panel .fw-allocation>span{
  border-radius:999px!important;
}
body[data-page=portfolio] .fw-tone-0{background:#aeb8ae!important}
body[data-page=portfolio] .fw-tone-1{background:#76b7a7!important}
body[data-page=portfolio] .fw-tone-2{background:#a57be0!important}

@media(max-width:700px){
  body[data-page=portfolio] .fw-balance{
    padding:22px 18px 18px!important;
    border-radius:28px!important;
  }
  body[data-page=portfolio] .fw-balance-head{
    margin-bottom:18px!important;
  }
  body[data-page=portfolio] .fw-balance-title{
    font-size:34px!important;
    line-height:.95!important;
  }
  body[data-page=portfolio] .fw-period-picker>summary{
    min-height:44px!important;
    padding:0 15px!important;
    font-size:16px!important;
  }
  body[data-page=portfolio] .fw-balance-value{
    font-size:clamp(42px,11vw,52px)!important;
    line-height:1!important;
  }
  body[data-page=portfolio] .fw-balance-change{
    margin-top:12px!important;
    font-size:18px!important;
  }
  body[data-page=portfolio] #fw-balance-chart{
    margin-top:18px!important;
    padding:9px 8px 3px!important;
    border-radius:20px!important;
  }
  body[data-page=portfolio] .fw-allocation-panel{
    margin-top:14px!important;
    padding:15px 14px 12px!important;
    border-radius:20px!important;
  }
  body[data-page=portfolio] .fw-allocation-item{
    padding:0 10px!important;
  }
  body[data-page=portfolio] .fw-allocation-name{
    gap:6px!important;
    font-size:11.5px!important;
    white-space:normal!important;
  }
  body[data-page=portfolio] .fw-allocation-name i{
    width:10px!important;
    height:10px!important;
  }
  body[data-page=portfolio] .fw-allocation-item>strong{
    margin-top:7px!important;
    font-size:25px!important;
  }
  body[data-page=portfolio] .fw-allocation-item>small{
    margin-top:7px!important;
    font-size:10.5px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body[data-page=portfolio] .fw-allocation-panel .fw-allocation{
    height:8px!important;
    margin-top:15px!important;
    gap:3px!important;
  }
}


/* Portfolio reference calibration — match requested screenshot proportions. */
@media(max-width:700px){
  body[data-page=portfolio] .fw-balance{
    padding:14px 18px 18px!important;
  }
  body[data-page=portfolio] .fw-balance-head{
    margin-bottom:14px!important;
  }
  body[data-page=portfolio] .fw-balance-change{
    margin-top:10px!important;
  }
  body[data-page=portfolio] #fw-balance-chart{
    margin-top:12px!important;
    padding:8px 8px 3px!important;
  }
  body[data-page=portfolio] #fw-balance-chart .fc-svg{
    aspect-ratio:1000 / 380!important;
  }
  body[data-page=portfolio] .fw-allocation-panel{
    margin-top:14px!important;
  }
}
