/* /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;
    }
}

#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/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__remember[b-if4mhcwf87] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    cursor: pointer;
    font-size: 0.9rem;
    color: #3c4043;
}

    .signin-dialog__remember input[type="checkbox"][b-if4mhcwf87] {
        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;
}
