/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-7jtvmb6mk1] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-7jtvmb6mk1] {
    flex: 1;
}

.sidebar[b-7jtvmb6mk1] {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row[b-7jtvmb6mk1] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-7jtvmb6mk1]  a, .top-row[b-7jtvmb6mk1]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-7jtvmb6mk1]  a:hover, .top-row[b-7jtvmb6mk1]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-7jtvmb6mk1]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-7jtvmb6mk1] {
        justify-content: space-between;
    }

    .top-row[b-7jtvmb6mk1]  a, .top-row[b-7jtvmb6mk1]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-7jtvmb6mk1] {
        flex-direction: row;
    }

    .sidebar[b-7jtvmb6mk1] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-7jtvmb6mk1] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-7jtvmb6mk1]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-7jtvmb6mk1], article[b-7jtvmb6mk1] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

/* On a 360px phone the menu, logo, search icon, help and profile buttons are 9px wider than the
   header. The profile menu's dropdown chevron is the one part that says nothing the avatar does
   not; the avatar still opens the menu. */
@media (max-width: 399.98px) {
    .header-actions[b-7jtvmb6mk1]  .rz-profile-menu .rz-navigation-item-icon-children {
        display: none;
    }
}

#blazor-error-ui[b-7jtvmb6mk1] {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-7jtvmb6mk1] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-huksl0xwxf] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-huksl0xwxf] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-huksl0xwxf] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-huksl0xwxf] {
    font-size: 1.1rem;
}

.bi[b-huksl0xwxf] {
    display: inline-block;
    position: relative;
    margin-right: 0.5rem;
    top: -1px;
    font-size: 1rem;
}

.nav-item[b-huksl0xwxf] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-huksl0xwxf] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-huksl0xwxf] {
        padding-bottom: 1rem;
    }

    .nav-item[b-huksl0xwxf]  a {
        color: #d7d7d7;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
    }

.nav-item[b-huksl0xwxf]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-huksl0xwxf]  a:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

.nav-scrollable[b-huksl0xwxf] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-huksl0xwxf] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-huksl0xwxf] {
        display: none;
    }

    .nav-scrollable[b-huksl0xwxf] {
        /* Never collapse the sidebar for wide screens */
        display: block;

        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
/* /Components/Pages/StockDetail.razor.rz.scp.css */
/* Key Metrics & Fundamentals cards - align label top, value bottom */
.metrics-card-body[b-lsp7ocklrr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.metrics-card-body .metric-label[b-lsp7ocklrr] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color, #6c757d);
    text-align: center;
}

.metrics-card-body .metric-value[b-lsp7ocklrr] {
    margin-top: auto;
    text-align: center;
}
/* /Components/Shared/HeaderSymbolSearch.razor.rz.scp.css */
.header-symbol-search[b-fba9cbp6t8] {
    display: flex;
    align-items: center;
    flex: 0 1 360px;
    min-width: 0;
    margin-left: 2rem;
}

.hss-field[b-fba9cbp6t8] {
    display: flex;
    align-items: center;
    flex: 1;
    min-width: 0;
}

.header-symbol-search[b-fba9cbp6t8]  .hss-toggle,
.header-symbol-search[b-fba9cbp6t8]  .hss-close {
    display: none;
}

.header-symbol-search[b-fba9cbp6t8]  .rz-autocomplete {
    background-color: var(--rz-base-background-color);
}

/* Below Radzen's lg breakpoint the header has no room for a box beside the logo and the profile
   menu: show an icon, and open the box over the whole header when it is pressed. */
@media (max-width: 1023.98px) {
    .header-symbol-search[b-fba9cbp6t8] {
        flex: 0 0 auto;
        margin-left: auto;
    }

    .hss-field[b-fba9cbp6t8] {
        display: none;
    }

    /* Narrower than Radzen's 36px icon button: on a 375px phone this and the help and profile
       buttons beside it fit with only a few pixels to spare. */
    .header-symbol-search[b-fba9cbp6t8]  .hss-toggle {
        display: inline-flex;
        min-width: 0;
        padding: 0 4px;
    }

    .header-symbol-search.open .hss-field[b-fba9cbp6t8] {
        display: flex;
        position: absolute;
        inset: 0;
        z-index: 10;
        gap: 4px;
        padding: 0 8px;
        background-color: var(--rz-info-light);
    }

    .header-symbol-search.open[b-fba9cbp6t8]  .hss-close {
        display: inline-flex;
    }
}
/* /Components/Shared/PaperPortfolioPanel.razor.rz.scp.css */
/*
    The against-the-index strip.

    Four columns that must read as one row: three returns and a verdict. One of them holds a
    dropdown, which is half again as tall as a line of text, and baseline alignment therefore put
    its number a third of a line below the others - close enough to look like a mistake and far
    enough to stop the eye scanning across them.

    So the columns do not align to each other at all. Each is a label of one fixed height above a
    value box of another, and every value box is tall enough to hold the dropdown and centres its
    contents. The numbers then line up because they are all in the middle of boxes of equal
    height, whatever is sitting in them.
*/

.pp-compare[b-ddv3ba98a7] {
    display:     flex;
    flex-wrap:   wrap;
    /* The row gap only shows on a narrow screen, where the four columns wrap onto separate
       lines and would otherwise sit flush against each other. On one line it costs nothing. */
    gap:         0.65rem 1.25rem;
    align-items: flex-start;
}

.pp-metric[b-ddv3ba98a7] {
    display:        flex;
    flex-direction: column;
    /* Allowed to be narrower than its contents want, so the column holding the picker can be
       squeezed on a phone instead of pushing the figure beside it off the screen. */
    min-width:      0;
    max-width:      100%;
}

/* 210px where there is room for it, narrower where there is not. */
.pp-picker[b-ddv3ba98a7] {
    display:   block;
    flex:      0 1 210px;
    min-width: 0;
}

.pp-metric-label[b-ddv3ba98a7] {
    font-size:     0.75rem;
    line-height:   1;
    margin-bottom: 0.4rem;
    white-space:   nowrap;
}

.pp-metric-value[b-ddv3ba98a7] {
    display:     flex;
    align-items: center;
    gap:         0.5rem;
    min-height:  40px;          /* a Radzen dropdown exactly, so every row is the same height
                                   and a plain number sits at the same centre as the picker */
    font-size:   1.1rem;
    font-weight: 600;
}

/* The verdict. Pushed to the far end because it is the conclusion the three to its left add up
   to, and right-aligned so it reads as a summary rather than a fourth reading. */
.pp-verdict[b-ddv3ba98a7] {
    margin-left: auto;
    text-align:  right;
}

.pp-verdict .pp-metric-value[b-ddv3ba98a7] {
    justify-content: flex-end;
}

/* Below about a phone's width the verdict has nowhere to be pushed to, and an auto margin then
   strands it against the right edge under three left-aligned figures. It goes back in line. */
/*
    Where both books started, beside where they are now. A small grid rather than a sentence: the
    reader is comparing along two directions at once - account against strategy, and then against
    now - and a sentence makes them hold four numbers in their head to do it.
*/
.pp-start[b-ddv3ba98a7] {
    --bs-table-bg: transparent;
    width:         auto;
    font-size:     0.85rem;
}

.pp-start th[b-ddv3ba98a7],
.pp-start td[b-ddv3ba98a7] {
    padding:     0.2rem 0.9rem 0.2rem 0;
    white-space: nowrap;
}

.pp-start thead th[b-ddv3ba98a7] {
    font-size:   0.7rem;
    font-weight: 400;
    color:       var(--bs-secondary-color);
}

.pp-start tbody th[b-ddv3ba98a7] {
    font-weight: 600;
}

.pp-start-cash[b-ddv3ba98a7] {
    display:   block;
    font-size: 0.75rem;
    color:     var(--bs-secondary-color);
}

@media (max-width: 575.98px) {
    .pp-verdict[b-ddv3ba98a7] {
        margin-left: 0;
        text-align:  left;
    }

    .pp-verdict .pp-metric-value[b-ddv3ba98a7] {
        justify-content: flex-start;
    }
}
/* /Components/Shared/SignInDialog.razor.rz.scp.css */
.signin-dialog[b-if4mhcwf87] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.signin-dialog__lead[b-if4mhcwf87] {
    margin: 0;
    color: #5f6368;
    font-size: 0.95rem;
    line-height: 1.5;
}

.signin-dialog__options[b-if4mhcwf87] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

/* Top-aligned, so the box stays beside the first line when the recap label wraps. */
.signin-dialog__remember[b-if4mhcwf87] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    cursor: pointer;
    font-size: 0.9rem;
    line-height: 1.35;
    color: #3c4043;
}

    .signin-dialog__remember input[type="checkbox"][b-if4mhcwf87] {
        flex-shrink: 0;
        margin: 2px 0 0 0;
        width: 16px;
        height: 16px;
        accent-color: #4285F4;
        cursor: pointer;
    }

.signin-dialog__actions[b-if4mhcwf87] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.25rem;
}

.signin-dialog__cancel[b-if4mhcwf87] {
    border: none;
    background: none;
    padding: 0.5rem 0.25rem;
    color: #5f6368;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    border-radius: 4px;
}

    .signin-dialog__cancel:hover[b-if4mhcwf87] {
        background: #f1f3f4;
        color: #3c4043;
    }

/* "Continue with Google" follows Google's published Sign In button guidelines
   (white background, brand-colored G mark, neutral text) rather than the app's
   own accent color, since this is the identity provider's button, not ours. */
.google-btn[b-if4mhcwf87] {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    height: 40px;
    padding: 0 1rem;
    border: 1px solid #dadce0;
    border-radius: 6px;
    background: #fff;
    color: #3c4043;
    font-size: 0.9rem;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: box-shadow 0.15s ease, background-color 0.15s ease;
}

    .google-btn:hover[b-if4mhcwf87] {
        box-shadow: 0 1px 3px rgba(60, 64, 67, 0.3), 0 1px 2px rgba(60, 64, 67, 0.15);
        background: #f8f9fa;
    }

    .google-btn:active[b-if4mhcwf87] {
        background: #f1f3f4;
    }

    .google-btn:focus-visible[b-if4mhcwf87] {
        outline: 2px solid #4285F4;
        outline-offset: 2px;
    }

.google-btn__icon[b-if4mhcwf87] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}
/* /Components/Shared/WeightRow.razor.rz.scp.css */
/* ?? Outer row ?????????????????????????????????????????????????????????????? */
.wr-row[b-d6qekk4dhu] {
    padding: 14px 0 10px;
    border-bottom: 1px solid #e9ecef;
}

.wr-row:last-child[b-d6qekk4dhu] {
    border-bottom: none;
    padding-bottom: 4px;
}

/* ?? Header: label (left) + current value (right) ????????????????????????? */
.wr-header[b-d6qekk4dhu] {
    display:         flex;
    justify-content: space-between;
    align-items:     baseline;
    margin-bottom:   2px;
}

.wr-label[b-d6qekk4dhu] {
    font-weight:  600;
    font-size:    .93rem;
}

.wr-value[b-d6qekk4dhu] {
    font-size:   .88rem;
    font-weight: 700;
    min-width:   36px;
    text-align:  right;
    transition:  color 0.15s ease;
}

.wr-value--positive[b-d6qekk4dhu] { color: #198754; }
.wr-value--negative[b-d6qekk4dhu] { color: #dc3545; }
.wr-value--zero[b-d6qekk4dhu]     { color: #6c757d; }

/* ?? Description sub-text ????????????????????????????????????????????????? */
.wr-desc[b-d6qekk4dhu] {
    font-size:    .78rem;
    color:        #868e96;
    margin-bottom: 6px;
}

/* ?? Range slider ????????????????????????????????????????????????????????? */
.wr-slider-wrap[b-d6qekk4dhu] {
    position: relative; /* anchor for the floating tip */
}

.wr-slider[b-d6qekk4dhu] {
    width:   100%;
    padding: 0;
    margin:  0;
}
