/*
 * @author Victor Benincasa <vbenincasa @ gmail.com>
 * @version 1.2.38 (2026-03-17T21:46-03:00)
 */

    :root {
      --card-radius: 1.25rem;
      --panel-bg: #fff;
      --surface-bg: #f8fafc;
      --text-default: #334155;
      --text-muted: #64748b;
      --brand-blue-rgb: 13, 110, 253;
      --brand-green-rgb: 32, 201, 151;
      --soft-shadow: 0 10px 26px rgba(2,6,23,.08);
      --strong-shadow: 0 12px 30px rgba(0,0,0,.12);
      --soft-border: 1px solid rgba(15,23,42,.06);
      --summary-strip-bg: linear-gradient(90deg, rgba(var(--brand-blue-rgb), .08), rgba(16,185,129,.08));
      --summary-strip-border: 1px solid rgba(var(--brand-blue-rgb), .14);
    }
    body{
      background: radial-gradient(1200px 600px at 15% 0%, rgba(var(--brand-blue-rgb),.12), transparent 55%),
                  radial-gradient(1000px 600px at 85% 0%, rgba(var(--brand-green-rgb),.12), transparent 55%),
                  var(--surface-bg);
    }
    .app-shell{
      width: 100%;
      max-width: 1380px;
      margin: 0 auto;
      box-sizing: border-box;
      padding-left: clamp(.85rem, 1.8vw, 1.35rem);
      padding-right: clamp(.85rem, 1.8vw, 1.35rem);
    }
    .app-header{
      border-radius: var(--card-radius);
      background: linear-gradient(135deg, rgba(var(--brand-blue-rgb),.95), rgba(var(--brand-green-rgb),.9));
      color: #fff;
      box-shadow: var(--strong-shadow);
    }
    .brand-cta{
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      border-radius: .7rem;
      font-weight: 700;
      box-shadow: 0 4px 12px rgba(2,6,23,.18);
      white-space: nowrap;
    }
    .brand-cta i{
      font-size: .95rem;
      line-height: 1;
    }
    .app-header-highlights{
      flex: 0 1 25rem;
      display: grid;
      gap: .2rem;
      font-size: .78rem;
      line-height: 1.22;
      color: rgba(255,255,255,.9);
    }
    .app-header-highlight-line{
      display: flex;
      align-items: flex-start;
      gap: .42rem;
    }
    .app-header-highlight-star{
      color: #ffd76a;
      line-height: 1.1;
      flex: 0 0 auto;
      text-shadow: 0 0 8px rgba(255, 215, 106, .28);
    }
    @media (max-width: 1199.98px){
      .app-header-highlights{
        flex-basis: 100%;
        margin-top: .15rem;
      }
    }
    @media (max-width: 767.98px){
      .app-header-highlights{
        font-size: .74rem;
        gap: .24rem;
      }
    }
	    .soft-card{
	      border-radius: var(--card-radius);
	      box-shadow: var(--soft-shadow);
	      border: var(--soft-border);
	    }
	    .investment-entry-card{
	      position: relative;
	      overflow: hidden;
	      background-color: var(--panel-bg);
	    }
	    .investment-entry-card::before{
	      content: "";
	      position: absolute;
	      inset: 0 0 auto 0;
	      height: 190px;
	      background:
	        linear-gradient(180deg,
	          rgba(226, 232, 240, .72) 0%,
	          rgba(241, 245, 249, .58) 42%,
	          rgba(255, 255, 255, 0) 100%);
	      pointer-events: none;
	    }
	    .investment-entry-card > *{
	      position: relative;
	      z-index: 1;
	    }
	    .app-toast-container{
	      z-index: 1095;
	    }
	    .app-toast{
	      background: rgba(15, 23, 42, .94);
	      color: #f8fafc;
	      box-shadow: 0 14px 30px rgba(2, 6, 23, .22);
	    }
	    #shareUrlModalField{
	      min-height: 8rem;
	      resize: vertical;
	    }
	    .index-value{
      font-variant-numeric: tabular-nums;
      letter-spacing: .2px;
      font-size: 1.75rem;
      line-height: 1.1;
    }
    .mono{ font-variant-numeric: tabular-nums; }

    .table thead th{ white-space: nowrap; }
    .table td, .table th { vertical-align: middle; }
    #invTable thead th{
      position: sticky;
      top: 0;
      z-index: 1;
      background: #f8fafc;
    }
    #invTable th,
    #invTable td{
      width: auto;
      white-space: nowrap;
    }

    /* Compactacao */
    .w-id   { min-width: 300px; }
    .w-type { min-width: 200px; }
    .w-rate { min-width: 140px; max-width: 150px; }
    .w-date { min-width: 0; }
    .w-days { min-width: 0; text-align: center; }
    .w-protection { min-width: 0; text-align: center; }
    .w-out-net  { min-width: 0; text-align: center;	}
    .w-out-mini { min-width: 0; font-size: .80rem; }
    #invTable td.w-rate .input-group{
      width: 100%;
      min-width: 0;
    }
    #invTable td.w-rate .rate-input{
      min-width: 0;
      padding-left: .35rem;
      padding-right: .35rem;
    }
    #invTable td.w-rate .input-group-text{
      padding-left: .35rem;
      padding-right: .35rem;
      font-size: .70rem;
    }
    #invTable .protection-pill-main{
      min-width: 86px;
      justify-content: center;
    }
    #invTable .extra-col{
      overflow: hidden;
      opacity: 1;
      width: auto;
      max-width: 12rem;
      transition:
        opacity .5s ease,
        width .5s ease,
        max-width .5s ease,
        padding-left .5s ease,
        padding-right .5s ease,
        border-color .5s ease;
    }
    #invTable .extra-col > *{
      transition: opacity .5s ease, transform .5s ease;
    }
    #invTable[data-show-extra="0"] .extra-col{
      opacity: 0;
      width: 0;
      max-width: 0;
      padding-left: 0 !important;
      padding-right: 0 !important;
      border-left-color: transparent !important;
      border-right-color: transparent !important;
      pointer-events: none;
    }
    #invTable[data-show-extra="0"] .extra-col > *{
      opacity: 0;
      transform: translateX(-.2rem);
    }
    .table-extra-toggle .form-check-label{
      font-size: .82rem;
      font-weight: 600;
      color: var(--text-default);
      user-select: none;
      cursor: pointer;
    }
    .table-extra-toggle .form-check-input{ cursor: pointer; }
    .investment-card-toolbar{
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      justify-content: space-between;
      gap: .75rem 1rem;
    }
    .investment-card-toolbar-top{
      align-items: flex-end;
    }
    .investment-card-toolbar-left{
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: .75rem;
      min-width: 0;
    }
    .investment-card-toolbar-actions{
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: flex-end;
      gap: .5rem;
      margin-left: auto;
    }
    #invTable tbody tr.row-best > *{
      background-color: rgba(16, 185, 129, .10) !important;
    }
    #invTable tbody tr.row-best > td:first-child{
      box-shadow: inset 3px 0 0 rgba(16, 185, 129, .8);
    }
    #invTable tbody tr.row-incomplete > *{
      background-color: rgba(245, 158, 11, .07) !important;
    }
    #invTable tbody tr.row-incomplete > td:first-child{
      box-shadow: inset 3px 0 0 rgba(245, 158, 11, .72);
    }
    .name-input-wrap{ position: relative; }
    .name-input{ padding-right: 2.2rem; }
    .type-input-wrap{ position: relative; }
    .type-input-wrap .type-input{ padding-right: 6.3rem; }
    .name-family-chip{
      max-width: 94px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      pointer-events: none;
      font-size: .68rem;
      line-height: 1;
      font-weight: 700;
      color: #0a58ca;
      border: 1px solid rgba(13,110,253,.28);
      background: rgba(13,110,253,.11);
      border-radius: 999px;
      padding: .23rem .42rem;
    }
    .type-input-wrap .name-family-chip{
      position: absolute;
      right: 2rem;
      top: 50%;
      transform: translateY(-50%);
      z-index: 3;
    }
    .inst-logo-thumb{
      position: absolute;
      right: .45rem;
      top: 50%;
      transform: translateY(-50%);
      width: 20px;
      height: 20px;
      border-radius: 999px;
      object-fit: contain;
      background: #fff;
      border: 1px solid rgba(15,23,42,.15);
      padding: 1px;
    }

    .cell-2line{ line-height: 1.1; }
    .cell-2line small{ color:#64748b; }
    .net-cell-wrap{
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: .45rem;
    }
    .net-rank-badge{
      display: inline-flex;
      align-items: center;
      gap: .2rem;
      padding: .14rem .38rem;
      border-radius: 999px;
      font-size: .8rem;
      line-height: 1;
      font-weight: 600;
      white-space: nowrap;
      color: #64748b;
      background: rgba(148, 163, 184, .10);
      border: 1px solid rgba(148, 163, 184, .28);
      flex: 0 0 auto;
    }
    .net-rank-badge i{
      font-size: .68rem;
      opacity: .85;
    }
    .net-rank-badge.top-1{
      color: #854d0e;
      background: linear-gradient(180deg, rgba(254, 240, 138, .68), rgba(250, 204, 21, .38));
      border-color: rgba(202, 138, 4, .55);
      box-shadow: 0 0 0 1px rgba(250, 204, 21, .18), inset 0 1px 0 rgba(255,255,255,.45);
      font-weight: 700;
    }
    .net-rank-badge.top-2{
      color: #7c2d12;
      background: linear-gradient(180deg, rgba(253, 186, 116, .70), rgba(251, 146, 60, .35));
      border-color: rgba(194, 65, 12, .48);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.45);
      font-weight: 700;
    }
    .net-rank-badge.top-3{
      color: #334155;
      background: linear-gradient(180deg, rgba(226, 232, 240, .78), rgba(203, 213, 225, .45));
      border-color: rgba(148, 163, 184, .55);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.55);
      font-weight: 700;
    }

    .badge-soft{
      background: rgba(13,110,253,.10);
      color: rgb(13,110,253);
      border: 1px solid rgba(13,110,253,.15);
    }
    .muted-note{ color: var(--text-muted); }
    .indices-status-label{
      transition: color .18s ease;
    }
    .indices-status-label.indices-status-warning{
      color: #b45309;
      font-weight: 700;
    }
    .index-date-pill{
      display: inline-flex;
      align-items: center;
      padding: .22rem .58rem;
      border-radius: 999px;
      background: rgba(15, 23, 42, .06);
      border: 1px solid rgba(15, 23, 42, .08);
      color: var(--text-muted);
      font-size: .64rem;
      font-weight: 700;
      line-height: 1;
      white-space: nowrap;
    }
    .index-date-note{
      font-size: .72rem !important;
      line-height: 1.25;
    }
    .copom-date-cell{
      display: inline-flex;
      align-items: baseline;
      gap: .35rem;
      flex-wrap: wrap;
    }
    .copom-date-source{
      font-size: .74em;
      color: #94a3b8;
      font-weight: 600;
    }
    .copom-date-source.is-scheduled{
      color: #15803d;
    }
    .days-badge{
      display: inline-block;
      color: var(--text-default);
      font-size: .84rem;
      font-weight: 600;
      line-height: 1.15;
    }
    .spinner-sm{ width: 1rem; height: 1rem; border-width: .18em; }

    .chart-wrap{
      height: 420px;
      position: relative;
    }
    @media (max-width: 992px){
      .chart-wrap{ height: 360px; }
    }
    .milestone-hover-tooltip{
      position: absolute;
      z-index: 14;
      max-width: 320px;
      pointer-events: none;
      padding: .38rem .5rem;
      border-radius: .48rem;
      border: 1px solid rgba(180, 83, 9, .28);
      background: rgba(255, 251, 235, .96);
      color: #9a3412;
      font-size: .76rem;
      font-weight: 700;
      line-height: 1.25;
      box-shadow: 0 8px 16px rgba(2,6,23,.14);
      white-space: normal;
    }

    /* Menos destaque em Bruta/IR */
    .mini-metric{
      font-size: .85rem;
      font-weight: 600;
    }
    .mini-metric.muted{
      font-weight: 600;
      color:#334155;
    }

    /* Cabeçalhos ordenáveis */
    .sort-th{
      border: 0;
      background: transparent;
      padding: 0;
      margin: 0;
      cursor: pointer;
      user-select: none;
      color: inherit;
      font-weight: 700;
    }
    .sort-th:focus-visible{
      outline: 2px solid rgba(13,110,253,.35);
      outline-offset: 3px;
      border-radius: .25rem;
    }
    .sort-icon{ vertical-align: -0.1em; }
    .sort-hint{
      display: inline-flex;
      flex-direction: column;
      margin-left: .25rem;
      line-height: .62;
      vertical-align: middle;
      opacity: .55;
    }
    .sort-hint i{
      font-size: .62rem;
      display: block;
    }
    .days-info-icon{
      font-size: .72rem;
      opacity: .85;
      vertical-align: text-top;
    }
    .date-input{
      max-width: 100px;
      padding-left: .4rem;
      padding-right: .4rem;
    }
    .form-control.is-invalid,
    .was-validated .form-control:invalid{
      padding-right: calc(.75em + .48rem);
      background-position: right .16rem center;
      background-size: .9rem .9rem;
    }
    .rate-input.form-control.is-invalid,
    .was-validated .rate-input.form-control:invalid{
      padding-right: calc(1.85em + 1.45rem);
      background-position: right 1.35rem center;
    }
    .help-dot{
      color: #64748b;
      font-size: .9rem;
      cursor: help;
      vertical-align: text-top;
      margin-left: .2rem;
    }
    .tooltip{
      --bs-tooltip-max-width: min(18rem, calc(100vw - 2rem));
    }
    .summary-strip{
      border-radius: .8rem;
      background: var(--summary-strip-bg);
      border: var(--summary-strip-border);
      padding: .55rem .7rem;
      margin-bottom: .7rem;
    }
    .summary-pill{
      border-radius: 999px;
      padding: .2rem .55rem;
      font-size: .78rem;
      font-weight: 700;
      display: inline-flex;
      align-items: center;
      gap: .3rem;
      white-space: nowrap;
    }
    .summary-pills-layout{
      display: grid;
      grid-template-columns: minmax(16rem, 1.15fr) repeat(2, minmax(14rem, 1fr));
      gap: .45rem .55rem;
      align-items: stretch;
    }
    .summary-pill.best{
      background: rgba(16,185,129,.17);
      color: #047857;
      padding: 0;
      font-size: .84rem;
      font-weight: 800;
      box-shadow: inset 0 0 0 1px rgba(4,120,87,.16);
      border-radius: .82rem;
      gap: 0;
      align-items: stretch;
      white-space: normal;
      overflow: hidden;
      min-height: 3.05rem;
      grid-column: 1;
      grid-row: 1 / span 2;
      align-self: stretch;
    }
    .summary-pill.best .summary-best-icon-wrap{
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 1.95rem;
      padding: 0 .56rem;
      background: linear-gradient(180deg, rgba(4,120,87,.34), rgba(4,120,87,.22));
      border-right: 1px solid rgba(4,120,87,.25);
      flex: 0 0 auto;
    }
    .summary-pill.best .summary-best-body{
      display: inline-flex;
      flex-direction: column;
      justify-content: center;
      padding: .44rem .76rem .48rem .66rem;
      line-height: 1.1;
      gap: .16rem;
      min-width: 13rem;
    }
    .summary-pill.best .summary-best-title{
      font-size: .69rem;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .02em;
      color: #065f46;
    }
    .summary-pill.best .summary-best-value{
      font-size: .84rem;
      font-weight: 800;
      color: #065f46;
    }
    .summary-pill.best .summary-best-icon{
      font-size: .88rem;
    }
    .summary-pill.spread{
      background: rgba(14,116,144,.15);
      color: #0f766e;
    }
    @media (max-width: 1199.98px){
      .app-shell{
        max-width: none;
        padding-left: .75rem;
        padding-right: .75rem;
      }
      #invTable{
        font-size: .82rem;
      }
      #invTable.table-sm > :not(caption) > * > *{
        padding: .28rem .32rem;
      }
      .w-id{
        min-width: 220px;
      }
      .w-type{
        min-width: 158px;
      }
      .w-rate{
        min-width: 118px;
        max-width: 124px;
      }
      .w-date{
        min-width: 88px;
      }
      .w-days{
        min-width: 54px;
      }
      .w-protection{
        min-width: 84px;
      }
      .w-out-net{
        min-width: 106px;
      }
      .w-out-mini{
        font-size: .75rem;
      }
      .date-input{
        max-width: 92px;
      }
      .type-input-wrap .type-input{
        padding-right: 5.3rem;
      }
      .name-family-chip{
        max-width: 76px;
        font-size: .62rem;
        padding: .2rem .34rem;
      }
      #invTable td.w-rate .input-group-text{
        padding-left: .28rem;
        padding-right: .28rem;
        font-size: .66rem;
      }
      #invTable .protection-pill-main{
        min-width: 80px;
      }
      .summary-pills-layout{
        grid-template-columns: 1fr;
      }
      .summary-pill.best{
        grid-column: auto;
        grid-row: auto;
      }
    }
    @media (max-width: 999.98px){
      #invTable{
        border-collapse: separate;
        border-spacing: 0;
      }
      #invTable thead{
        display: none;
      }
      #invTable tbody{
        display: block;
      }
      #invTable tbody tr{
        display: grid;
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) minmax(76px, .85fr);
        gap: .5rem .45rem;
        position: relative;
        margin-bottom: .8rem;
        padding: .8rem .85rem .72rem;
        border: 1px solid rgba(15, 23, 42, .1);
        border-radius: .9rem;
        background: #fff;
        box-shadow: 0 8px 20px rgba(2, 6, 23, .06);
      }
      #invTable tbody tr > td{
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        min-width: 0;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        white-space: normal;
      }
      #invTable tbody tr > td::before{
        content: attr(data-mobile-label);
        display: block;
        margin-bottom: .2rem;
        font-size: .58rem;
        line-height: 1.15;
        font-weight: 800;
        letter-spacing: .02em;
        text-transform: uppercase;
        color: #64748b;
      }
      #invTable tbody tr > td[data-mobile-label=""]::before{
        display: none;
      }
      #invTable tbody tr.row-best > td:first-child{
        box-shadow: none;
      }
      #invTable .cell-name{ grid-column: 1 / 4; grid-row: 1; }
      #invTable .cell-type{ grid-column: 1 / 4; grid-row: 2; }
      #invTable .cell-rate{ grid-column: 1; grid-row: 3; }
      #invTable .cell-date{ grid-column: 2; grid-row: 3; }
      #invTable .cell-days{ grid-column: 3; grid-row: 3; }
      #invTable .cell-protection{ grid-column: 1; grid-row: 4; }
      #invTable .cell-net{ grid-column: 2 / 4; grid-row: 4; }
      #invTable .cell-ir{ grid-column: 1 / 2; grid-row: 5; }
      #invTable .cell-gross{ grid-column: 2 / 4; grid-row: 5; }
      #invTable .cell-actions{
        position: absolute;
        top: .5rem;
        right: .5rem;
        width: auto;
        z-index: 2;
      }
      #invTable .cell-actions .btnRemove{
        padding: .18rem .32rem;
      }
      #invTable .cell-name{
        padding-right: 1.8rem !important;
      }
      #invTable .cell-net .net-cell-wrap{
        width: 100%;
        align-items: flex-start;
      }
      #invTable .cell-net .cell-2line,
      #invTable .cell-ir .cell-2line,
      #invTable .cell-gross .cell-2line{
        text-align: left;
      }
      #invTable .cell-protection .protection-pill-main,
      #invTable .cell-days .days-badge{
        justify-content: flex-start;
      }
      #invTable[data-show-extra="0"] .cell-ir,
      #invTable[data-show-extra="0"] .cell-gross{
        display: none;
      }
      #invTable[data-show-extra="0"] .cell-net{
        grid-column: 2 / 4;
      }
      #invTable .type-input-wrap .type-input{
        padding-right: 4.9rem;
      }
      #invTable .name-family-chip{
        max-width: 70px;
      }
    }
    .chart-inline-control{
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      border: 1px solid rgba(15,23,42,.12);
      border-radius: .6rem;
      padding: .2rem .45rem;
      background: #fff;
    }
    .chart-inline-control .form-check-label{
      font-size: .8rem;
      font-weight: 600;
      color: #334155;
      user-select: none;
      margin: 0;
      line-height: 1.2;
      white-space: nowrap;
    }
    .chart-inline-control .form-check{
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      margin: 0;
      padding-left: 0;
    }
    .chart-inline-control .form-check-input{
      margin: 0;
      float: none;
      cursor: pointer;
    }
    .rate-mode-inline-control{
      width: auto;
      max-width: 100%;
      justify-content: flex-start;
    }
    .rate-mode-inline-control .form-check{
      width: auto;
      max-width: 100%;
      justify-content: flex-start;
    }
    .rate-mode-inline-control .form-check-label{
      white-space: normal;
    }
    .chart-inline-select{
      width: auto !important;
      min-width: max-content;
      flex: 0 0 auto;
      font-size: .82rem;
    }
    .chart-spread-hint{
      min-height: 1.1rem;
      text-align: right;
    }
    .projection-insights-card{
      border: 1px solid rgba(15,23,42,.08);
      border-radius: .9rem;
      background: rgba(248, 250, 252, .9);
      padding: .75rem .85rem;
      margin-top: .8rem;
    }
    .projection-insights-title{
      font-size: .92rem;
      font-weight: 700;
      color: #0f172a;
      margin-bottom: .5rem;
    }
    #projectionInsightsTable{
      margin-bottom: 0;
      width: 100%;
      table-layout: auto;
    }
    #projectionInsightsTable th{
      font-size: .77rem;
      text-transform: uppercase;
      letter-spacing: .02em;
      color: #475569;
      background: rgba(241, 245, 249, .9);
    }
    #projectionInsightsTable td{
      font-size: .83rem;
      vertical-align: top;
      color: #0f172a;
    }
    #projectionInsightsTable .col-name{
      width: auto;
      font-weight: 600;
      white-space: normal;
    }
    .investment-name{
      font-weight: 700;
      line-height: 1.2;
      margin-bottom: .22rem;
    }
    .investment-meta-pills{
      display: flex;
      flex-wrap: wrap;
      gap: .22rem;
    }
    .investment-meta-break{
      flex-basis: 100%;
      height: 0;
      margin: 0;
      padding: 0;
    }
    .investment-meta-pill{
      display: inline-flex;
      align-items: center;
      border-radius: 999px;
      padding: .14rem .45rem;
      font-size: .68rem;
      line-height: 1.15;
      font-weight: 700;
      border: 1px solid transparent;
      white-space: nowrap;
      color: #334155;
      background: rgba(148, 163, 184, .16);
      border-color: rgba(100, 116, 139, .34);
    }
    .investment-meta-pill.rate{
      color: #115e59;
      background: rgba(13, 148, 136, .14);
      border-color: rgba(13, 148, 136, .32);
    }
    .investment-meta-pill.net{
      color: #1e3a8a;
      background: rgba(59, 130, 246, .14);
      border-color: rgba(59, 130, 246, .34);
    }
    .investment-meta-pill.ir{
      color: #7c2d12;
      background: rgba(251, 191, 36, .2);
      border-color: rgba(245, 158, 11, .38);
    }
    .net-subline{
      display: inline-flex;
      align-items: center;
      gap: .3rem;
      flex-wrap: wrap;
    }
    .date-input-wrap{
      display: inline-flex;
      align-items: center;
      gap: .35rem;
    }
    .date-input-wrap .date-input{
      flex: 1 1 auto;
    }
    .date-tax-warning{
      display: inline-flex;
      align-items: center;
      color: #b45309;
      font-size: .8rem;
      line-height: 1;
      cursor: help;
      flex: 0 0 auto;
    }
    .net-aa-pill{
      display: inline-flex;
      align-items: center;
      border-radius: 999px;
      padding: .08rem .34rem;
      font-size: .7rem;
      line-height: 1.1;
      font-weight: 700;
      color: #475569;
      background: rgba(148, 163, 184, .12);
      border: 1px solid rgba(148, 163, 184, .26);
      white-space: nowrap;
    }
    #projectionInsightsTable .col-monthly{
      width: auto;
      min-width: 850px;
    }
    .projection-insights-empty-cell{
      text-align: center;
    }
    .protection-wrap{
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: .28rem;
      white-space: normal;
      width: 100%;
    }
    .protection-pill{
      display: inline-flex;
      align-items: center;
      border-radius: 999px;
      padding: .2rem .55rem;
      font-size: .72rem;
      line-height: 1.2;
      font-weight: 700;
      border: 1px solid transparent;
      white-space: normal;
    }
    .protection-pill-icon{
      font-size: .72rem;
      line-height: 1;
      margin-right: .28rem;
      flex: 0 0 auto;
    }
    .protection-note{
      color: #64748b;
      font-size: .74rem;
      line-height: 1.25;
      text-align: center;
    }
    .protection-pill.fgc-full{
      background: rgba(22, 163, 74, .16);
      border-color: rgba(22, 163, 74, .45);
      color: #166534;
    }
    .protection-pill.fgc-partial{
      background: rgba(234, 179, 8, .18);
      border-color: rgba(202, 138, 4, .45);
      color: #92400e;
    }
    .protection-pill.fgc-none{
      background: rgba(148, 163, 184, .15);
      border-color: rgba(100, 116, 139, .35);
      color: #475569;
    }
    .monthly-matrix-wrap{
      max-width: 100%;
      overflow-x: auto;
    }
    .monthly-matrix{
      width: max-content;
      min-width: 100%;
      border-collapse: separate;
      border-spacing: .1rem .12rem;
      line-height: 1;
      margin: 0;
    }
    .monthly-matrix-cell{
      min-width: 0;
      padding: 0;
      border: 0;
      background: transparent;
      text-align: center;
      vertical-align: middle;
    }
    .monthly-matrix-head{
      white-space: nowrap;
    }
    .monthly-month-head{
      padding: 0 0 .06rem;
      font-size: .61rem;
      line-height: 1.1;
      font-weight: 800;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: #64748b;
    }
    .monthly-matrix-year-head{
      visibility: hidden;
      padding: 0;
      width: 3.4rem;
    }
    .monthly-matrix-value{
      min-width: 0;
      white-space: nowrap;
      font-weight: 700;
      color: #0f172a;
      font-size: .71rem;
      border: 1px solid transparent;
      border-radius: .45rem;
      padding: .05rem .20rem;
    }
    .monthly-matrix tbody th.monthly-matrix-cell{
      width: 3.4rem;
    }
    .monthly-year-cell{
      border-radius: 999px;
      padding: .08rem .24rem;
      font-size: .66rem;
      line-height: 1.2;
      font-weight: 800;
      white-space: nowrap;
      text-transform: uppercase;
      letter-spacing: .01em;
    }
    .monthly-year-cell.year-tone-1{
      color: #1e3a8a;
      background: rgba(59, 130, 246, .11);
      box-shadow: inset 0 0 0 1px rgba(59, 130, 246, .24);
    }
    .monthly-year-cell.year-tone-2{
      color: #0f766e;
      background: rgba(13, 148, 136, .11);
      box-shadow: inset 0 0 0 1px rgba(13, 148, 136, .24);
    }
    .monthly-year-cell.year-tone-3{
      color: #166534;
      background: rgba(34, 197, 94, .11);
      box-shadow: inset 0 0 0 1px rgba(34, 197, 94, .24);
    }
    .monthly-year-cell.year-tone-4{
      color: #7c2d12;
      background: rgba(249, 115, 22, .11);
      box-shadow: inset 0 0 0 1px rgba(249, 115, 22, .24);
    }
    .monthly-matrix-value.is-empty{
      color: #94a3b8;
      font-weight: 600;
      border-color: transparent;
      padding-left: 0;
      padding-right: 0;
    }
    .monthly-matrix-value.is-partial{
      color: #92400e;
      background: rgba(245, 158, 11, .12);
      border-color: rgba(217, 119, 6, .22);
    }
    .monthly-matrix-value.is-partial .monthly-currency-symbol,
    .monthly-matrix-value.is-partial .monthly-currency-number{
      color: inherit;
    }
    .monthly-matrix-value.is-inactive{
      color: #cbd5e1;
      font-weight: 600;
      border-color: transparent;
      opacity: .82;
    }
    .monthly-currency-symbol{
      font-size: .54rem;
      color: #94a3b8;
      font-weight: 700;
      line-height: 1;
      display: inline-block;
      margin-right: .08rem;
    }
    .monthly-currency-number{
      font-size: .72rem;
      color: #0f172a;
      font-weight: 700;
      line-height: 1.15;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .selic-curve-table-wrap{
      display: inline-block;
      max-width: 100%;
      overflow-x: auto;
    }
	    .selic-curve-table-wrap table{
	      width: auto;
	      min-width: fit-content;
	    }
	    .selic-curve-table-wrap th,
	    .selic-curve-table-wrap td{
	      padding: .20rem .72rem;
	      font-size: .80rem;
	    }
	    .calc-notes-grid .border{
	      height: 100%;
	    }
    .calc-notes-stack{
      display: flex;
      flex-direction: column;
      gap: .75rem;
      height: 100%;
    }
    .calc-notes-stack .border{
      height: auto;
    }
    .holiday-list{
      margin: 0;
      padding-left: 1rem;
      columns: 2;
      column-gap: 1rem;
    }
    .holiday-list li{
      break-inside: avoid;
      margin-bottom: .15rem;
    }
    @media (max-width: 767.98px){
      .holiday-list{
        columns: 1;
      }
    }
    .validation-panel{
      border-radius: .8rem;
      border: 1px solid rgba(245, 158, 11, .35);
      background: rgba(255, 251, 235, .9);
      padding: .55rem .65rem;
      margin-bottom: .7rem;
    }
    .validation-panel ul{
      margin: .4rem 0 0 1rem;
      padding: 0;
    }
    @media (max-width: 1199.98px){
      #projectionInsightsTable{
        display: block;
        border: 0;
      }
      #projectionInsightsTable thead{
        display: none;
      }
      #projectionInsightsTable tbody{
        display: block;
      }
      #projectionInsightsTable tbody tr.projection-insights-row{
        display: block;
        margin-bottom: .85rem;
        border: 1px solid rgba(15, 23, 42, .08);
        border-radius: .9rem;
        overflow: hidden;
        background: rgba(255, 255, 255, .96);
        box-shadow: 0 8px 20px rgba(15, 23, 42, .05);
      }
      #projectionInsightsTable tbody tr.projection-insights-row > td{
        display: block;
        width: 100% !important;
        min-width: 0 !important;
        border-left: 0;
        border-right: 0;
      }
      #projectionInsightsTable tbody tr.projection-insights-row > td.col-name{
        border-bottom: 1px solid rgba(15, 23, 42, .08);
        padding-bottom: .85rem;
      }
      #projectionInsightsTable tbody tr.projection-insights-row > td.col-monthly{
        padding-top: .85rem;
      }
      #projectionInsightsTable tbody tr.projection-insights-row > td.col-monthly .monthly-matrix-wrap{
        overflow-x: auto;
      }
      #projectionInsightsTable tbody tr.projection-insights-empty-row{
        display: block;
      }
      #projectionInsightsTable tbody tr.projection-insights-empty-row > td{
        display: block;
        width: 100% !important;
      }
    }
    .value-amount-col{
      width: 100%;
    }
    #globalAmountInput{
      min-width: 15ch; /* R$ 1.000.000,00 */
    }
    @media (min-width: 992px){
      .value-amount-col{
        flex: 0 0 20%;
        max-width: 20%;
        min-width: 19rem;
      }
      .investment-card-toolbar-top .row{
        flex: 1 1 auto;
        margin: 0;
      }
      .investment-card-toolbar-top .row > *{
        padding-left: 0;
        padding-right: 0;
      }
    }
    @media (max-width: 991.98px){
      .investment-card-toolbar-actions{
        margin-left: 0;
      }
    }

    /* Logo centralizado */
    .logo-badge{
      width: 60px;
      height: 60px;
      border-radius: 999px;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      overflow: hidden;
      background:
        radial-gradient(circle at 32% 28%, rgba(255,255,255,.42), rgba(255,255,255,.12) 38%, rgba(255,255,255,.08) 58%, rgba(255,255,255,.16) 100%);
    }
    .logo-badge-graphic{
      width: 38px;
      height: 38px;
      overflow: visible;
      filter: drop-shadow(0 2px 3px rgba(6, 24, 57, .18));
    }
    .logo-badge-orb{
      fill: rgba(255,255,255,.14);
      stroke: rgba(255,255,255,.22);
      stroke-width: 1.2;
    }
    .logo-badge-trend-shadow,
    .logo-badge-arrow-shadow{
      fill: none;
      stroke: rgba(12, 34, 74, .22);
      stroke-width: 5.2;
      stroke-linecap: round;
      stroke-linejoin: round;

    }
    .logo-badge-trend-fill,
    .logo-badge-arrow-fill{
      fill: none;
      stroke: #ffffff;
      stroke-linecap: round;
      stroke-linejoin: round;

      filter: drop-shadow(0 1px 2px rgba(7, 25, 61, .2));
      opacity: 0;
    }
    .logo-badge-trend-fill{
      stroke-width: 5.2;
      stroke-dasharray: 36.99;
      stroke-dashoffset: 36.99;
      animation: logo-line-draw 5s ease-in-out infinite;
    }
    .logo-badge-arrow-fill{
      stroke-width: 5.2;
      stroke-dasharray: 14.29;
      stroke-dashoffset: 14.29;
      animation: logo-arrow-draw 5s ease-in-out infinite;
    }
    @keyframes logo-line-draw{
      0%{
        stroke-dashoffset: 36.99;
        opacity: 0;
      }
      10%{
        opacity: 1;
      }
      42%{
        stroke-dashoffset: 0;
        opacity: 1;
      }
      62%{
        stroke-dashoffset: 0;
        opacity: 1;
      }
      100%{
        stroke-dashoffset: 0;
        opacity: 0;
      }
    }
    @keyframes logo-arrow-draw{
      0%,
      38%{
        stroke-dashoffset: 14.29;
        opacity: 0;
      }
      52%{
        stroke-dashoffset: 0;
        opacity: 1;
      }
      62%{
        stroke-dashoffset: 0;
        opacity: 1;
      }
      100%{
        stroke-dashoffset: 0;
        opacity: 0;
      }
    }
    @media (prefers-reduced-motion: reduce){
      .logo-badge-trend-fill,
      .logo-badge-arrow-fill{
        animation: none;
        stroke-dashoffset: 0;
        opacity: 1;
      }
    }
    .capital-input-wrap{
      border-radius: 2rem;
      border: 1px solid rgba(15,23,42,.1);
      background: #fff;
      box-shadow: inset 0 1px 2px rgba(15,23,42,.04);
      display: flex;
      align-items: center;
      gap: .5rem;
      padding: .15rem .15rem;
    }
    .capital-icon{
      width: 2.1rem;
      height: 2.1rem;
      border-radius: 999px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: rgba(13,110,253,.12);
      color: #0d6efd;
      flex: 0 0 auto;
    }
    .capital-input{
      border: 0;
      outline: 0;
      box-shadow: none;
      width: 100%;
      font-size: 1.1rem;
      font-weight: 700;
      color: #0f172a;
      background: transparent;
      font-variant-numeric: tabular-nums;
    }
    .capital-input:focus{
      outline: none;
      box-shadow: none;
    }
    .capital-select{
      border: 0;
      outline: 0;
      box-shadow: none;
      width: 100%;
      font-size: .95rem;
      font-weight: 600;
      color: #0f172a;
      background: transparent;
      padding-left: 0;
      padding-right: 0;
    }
    .capital-select:focus{
      outline: none;
      box-shadow: none;
    }
    .capital-toggle-row{
      width: auto;
      display: flex;
      align-items: center;
      justify-content: flex-start;
      gap: .8rem;
    }
    .capital-toggle-label{
      font-size: .95rem;
      font-weight: 600;
      color: #0f172a;
      line-height: 1.2;
    }
    .rate-mode-wrap{
      display: inline-flex;
      width: auto;
      max-width: 100%;
    }
    .rate-mode-col{
      width: auto;
      flex: 0 0 auto;
    }
  
