/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-11f1nez9rm] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-11f1nez9rm] {
    flex: 1;
}

.sidebar[b-11f1nez9rm] {
    /* The solid colour under the gradient is the fallback if the gradient doesn't paint,
       and it's the one value a contrast checker could sample if it were able to look here
       at all. (It isn't — .sidebar is sticky, and axe won't compute a background under a
       sticky ancestor. tools/A11yAudit measures this chrome by hand instead.) */
    background-color: var(--ti-sidebar-top);
    background-image: linear-gradient(180deg, var(--ti-sidebar-top) 0%, var(--ti-sidebar-bottom) 100%);
}

.top-row[b-11f1nez9rm] {
    background-color: var(--ti-surface);
    border-bottom: 1px solid var(--ti-border);
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-11f1nez9rm]  a, .top-row[b-11f1nez9rm]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-11f1nez9rm]  a:hover, .top-row[b-11f1nez9rm]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-11f1nez9rm]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-11f1nez9rm] {
        justify-content: space-between;
    }

    .top-row[b-11f1nez9rm]  a, .top-row[b-11f1nez9rm]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-11f1nez9rm] {
        flex-direction: row;
    }

    .sidebar[b-11f1nez9rm] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-11f1nez9rm] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-11f1nez9rm]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-11f1nez9rm], article[b-11f1nez9rm] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-11f1nez9rm] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    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-11f1nez9rm] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-yrz6x7u9dx] {
    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-yrz6x7u9dx] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-yrz6x7u9dx] {
    min-height: 3.5rem;
    /* Was rgba(0,0,0,0.4) over the sidebar's gradient — identical on screen, but two
       layers a contrast checker has to composite (a translucency over a gradient) instead
       of one value it can read. This is the same colour, stated opaquely.

       It does NOT make axe able to judge the sidebar: axe refuses to compute a background
       under any position:sticky ancestor, because a sticky element can slide over content
       whose colour it can't know, and .sidebar is sticky. That's why the brand text is a
       permanent baselined "violation" (measured 1.04:1 against the page background it is
       nowhere near). tools/A11yAudit checks that text by hand instead — see the sidebar
       contrast test there. This declaration stands on its own merits; it isn't the fix. */
    background-color: var(--ti-sidebar-topbar);
}

.navbar-brand[b-yrz6x7u9dx] {
    font-size: 1.1rem;
}

.bi[b-yrz6x7u9dx] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-yrz6x7u9dx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-yrz6x7u9dx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.nav-item[b-yrz6x7u9dx] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-yrz6x7u9dx] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-yrz6x7u9dx] {
        padding-bottom: 1rem;
    }

    .nav-item[b-yrz6x7u9dx]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
    }

/* 0.37 was tuned against the navy sidebar and fails on the town accents.
{{-}}
   The overlay lightens whatever is under it, so the more it lightens, the worse white text on top
   does. Navy scraped through at 4.60:1; green measured 4.48 and amber's lower gradient stop 3.75 —
   the current page's own link, the one nav item a screen reader user is most likely to be reading
   to orient themselves. Never caught because the accessibility fixture has no accent set, so every
   run of this suite until now measured navy and only navy.
{{-}}
   0.28 clears AA on all four accents at both ends of the gradient in both themes (worst 4.79:1)
   and is still plainly lighter than the 0.1 hover, which is what the state has to communicate. */
.nav-item[b-yrz6x7u9dx]  a.active {
    background-color: rgba(255,255,255,0.28);
    color: white;
}

.nav-item[b-yrz6x7u9dx]  .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

.nav-scrollable[b-yrz6x7u9dx] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-yrz6x7u9dx] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-yrz6x7u9dx] {
        display: none;
    }

    .nav-scrollable[b-yrz6x7u9dx] {
        /* Never collapse the sidebar for wide screens */
        display: block;

        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}

.bi-chat-nav-menu[b-yrz6x7u9dx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M2.678 11.894a1 1 0 0 1 .287.801 11 11 0 0 1-.398 2c1.395-.323 2.247-.697 2.634-.893a1 1 0 0 1 .71-.074A8 8 0 0 0 8 14c3.996 0 7-2.807 7-6s-3.004-6-7-6-7 2.808-7 6c0 1.468.617 2.83 1.678 3.894m-.493 3.905a22 22 0 0 1-.713.129c-.2.032-.352-.176-.273-.362a10 10 0 0 0 .244-.637l.003-.01c.248-.72.45-1.548.524-2.319C.743 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7-3.582 7-8 7a9 9 0 0 1-2.347-.306c-.52.263-1.639.742-3.468 1.105'/%3E%3C/svg%3E");
}

.bi-calendar-nav-menu[b-yrz6x7u9dx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5M1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z'/%3E%3C/svg%3E");
}

.bi-file-nav-menu[b-yrz6x7u9dx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M4 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.414A2 2 0 0 0 13.414 3L11 .586A2 2 0 0 0 9.586 0zm5.5 1.5v2a1 1 0 0 0 1 1h2l-3-3M5 7a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5A.5.5 0 0 1 5 7m0 3a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5'/%3E%3C/svg%3E");
}

.bi-tags-nav-menu[b-yrz6x7u9dx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M3 2v4.586l7 7L14.586 9l-7-7zM2 2a1 1 0 0 1 1-1h4.586a1 1 0 0 1 .707.293l7 7a1 1 0 0 1 0 1.414l-4.586 4.586a1 1 0 0 1-1.414 0l-7-7A1 1 0 0 1 2 6.586z M5.5 5a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1m0 1a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3'/%3E%3C/svg%3E");
}

.bi-map-nav-menu[b-yrz6x7u9dx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M15.817.113A.5.5 0 0 1 16 .5v14a.5.5 0 0 1-.402.49l-5 1a.5.5 0 0 1-.196 0L5.5 15.01l-4.902.98A.5.5 0 0 1 0 15.5v-14a.5.5 0 0 1 .402-.49l5-1a.5.5 0 0 1 .196 0L10.5.99l4.902-.98a.5.5 0 0 1 .415.103M10 1.91l-4-.8v12.98l4 .8zm1 12.98 4-.8V1.11l-4 .8zm-6-.8V1.11l-4 .8v12.98z'/%3E%3C/svg%3E");
}

.bi-folder-nav-menu[b-yrz6x7u9dx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M.54 3.87.5 3a2 2 0 0 1 2-2h3.672a2 2 0 0 1 1.414.586l.828.828A2 2 0 0 0 9.828 3h3.982a2 2 0 0 1 1.992 2.181l-.637 7A2 2 0 0 1 13.174 14H2.826a2 2 0 0 1-1.991-1.819l-.637-7a2 2 0 0 1 .342-1.31zM2.19 4a1 1 0 0 0-.996 1.09l.637 7a1 1 0 0 0 .995.91h10.348a1 1 0 0 0 .995-.91l.637-7A1 1 0 0 0 13.81 4z'/%3E%3C/svg%3E");
}

.bi-bell-nav-menu[b-yrz6x7u9dx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M8 16a2 2 0 0 0 2-2H6a2 2 0 0 0 2 2M8 1.918l-.797.161A4 4 0 0 0 4 6c0 .628-.134 2.197-.459 3.742-.16.767-.376 1.566-.663 2.258h10.244c-.287-.692-.502-1.49-.663-2.258C12.134 8.197 12 6.628 12 6a4 4 0 0 0-3.203-3.92zM14.22 12c.223.447.481.801.78 1H1c.299-.199.557-.553.78-1C2.68 10.2 3 6.88 3 6c0-2.42 1.72-4.44 4.005-4.901a1 1 0 1 1 1.99 0A5 5 0 0 1 13 6c0 .88.32 4.2 1.22 6'/%3E%3C/svg%3E");
}

.bi-bar-chart-nav-menu[b-yrz6x7u9dx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M4 11H2v3h2zm5-4H7v7h2zm5-5v12h-2V2zm-2-1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM6 7a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1zm-5 4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1z'/%3E%3C/svg%3E");
}

.bi-book-nav-menu[b-yrz6x7u9dx] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783'/%3E%3C/svg%3E");
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-xv0dpeygd8],
.components-reconnect-repeated-attempt-visible[b-xv0dpeygd8],
.components-reconnect-failed-visible[b-xv0dpeygd8],
.components-pause-visible[b-xv0dpeygd8],
.components-resume-failed-visible[b-xv0dpeygd8],
.components-rejoining-animation[b-xv0dpeygd8] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-xv0dpeygd8],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-xv0dpeygd8],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-xv0dpeygd8],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-xv0dpeygd8],
#components-reconnect-modal.components-reconnect-retrying[b-xv0dpeygd8],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-xv0dpeygd8],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-xv0dpeygd8],
#components-reconnect-modal.components-reconnect-failed[b-xv0dpeygd8],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-xv0dpeygd8] {
    display: block;
}


#components-reconnect-modal[b-xv0dpeygd8] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-xv0dpeygd8 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-xv0dpeygd8 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-xv0dpeygd8 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-xv0dpeygd8]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-xv0dpeygd8 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-xv0dpeygd8 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-xv0dpeygd8 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-xv0dpeygd8 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-xv0dpeygd8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-xv0dpeygd8] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-xv0dpeygd8] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-xv0dpeygd8] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-xv0dpeygd8] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-xv0dpeygd8] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-xv0dpeygd8] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-xv0dpeygd8 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-xv0dpeygd8] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-xv0dpeygd8 {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}

/* Reduced motion.
 *
 * This file is Blazor's stock reconnect UI, and its rejoining indicator is an INFINITE animation
 * with no `prefers-reduced-motion` guard — the rest of the app (app-wide theme.css and the landing
 * page) has one. It survived because nobody wrote it: it arrives with the template, it only appears
 * when the circuit drops, and it is the one piece of moving content in the product that has no
 * bound on how long it runs.
 *
 * That makes it a WCAG 2.2.2 (Pause, Stop, Hide) exposure as well as a 2.3/motion-sensitivity one:
 * moving content that starts automatically, lasts more than five seconds, and cannot be paused.
 *
 * Held still rather than hidden. Somebody who asked for less motion still needs to know the app is
 * trying to reconnect, so the rings stay on screen and stop moving.
 */
@media (prefers-reduced-motion: reduce) {
    .components-rejoining-animation div[b-xv0dpeygd8] {
        animation: none;
        top: 20px;
        left: 20px;
        width: 40px;
        height: 40px;
        opacity: 0.6;
    }

    /* The modal's own entrance, and the trap in switching it off.
     *
     * The dialog is `opacity: 0` at rest and the fade-in `animation` — with
     * `animation-fill-mode: both` — is what makes it visible. So `animation: none` ALONE would
     * leave a reduced-motion user with a reconnect dialog that never appears: the accessibility
     * fix would have hidden the one piece of UI that explains why the page stopped responding.
     * The end state has to be set explicitly instead. */
    #components-reconnect-modal[b-xv0dpeygd8] {
        animation: none;
        transition: none;
    }

    #components-reconnect-modal[open][b-xv0dpeygd8] {
        animation: none;
        opacity: 1;
    }

    #components-reconnect-modal[b-xv0dpeygd8]::backdrop {
        animation: none;
    }
}
/* /Components/Pages/Ask.razor.rz.scp.css */
/* Ask fills the screen so its fine print can sit at the foot of the page rather than
   immediately under the composer. */

.ask-page[b-j0brq1oxns] {
    display: flex;
    flex-direction: column;

    /* Enough to reach the bottom of the viewport on a short conversation, and no constraint at
       all on a long one — min-height, so the column grows past this the moment the thread does.

       The subtraction is the shell around this page: the 3.5rem top row, the article's own
       vertical padding, and the site footer. It is an approximation on purpose. Getting it
       exactly right needs the layout to be a height-constrained flex column all the way down,
       which would change every page to fix the spacing on one; overshooting here costs a little
       scroll before the footer, undershooting costs a small gap. Both are cheaper than that.

       dvh, not vh: on mobile browsers vh is the height WITHOUT the collapsing address bar, so
       vh-based layouts overshoot by ~60-100px exactly where the fine print lands. */
    min-height: calc(100dvh - 14rem);
}

/* The whole point: everything above keeps its natural position, and this drops to the bottom. */
.ask-fineprint[b-j0brq1oxns] {
    margin-top: auto;
    padding-top: 1.5rem;
    margin-bottom: 0;
}
/* /Components/Pages/EntityView.razor.rz.scp.css */
/* The topic timeline.
   A dated rail rather than a list of rows: the point of the page is "how long has this been
   going on", so the reader should be able to see the shape of the history without reading it. */

.ti-timeline[b-4mh540rbw1] {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Date column, then the rail, then the entries. The date is a real column so the eye can scan
   dates alone; it was an inline width plus a matching margin-left on everything beneath, which
   is the same layout expressed twice and drifts apart the moment either changes. */
.ti-day[b-4mh540rbw1] {
    display: grid;
    grid-template-columns: 8.5rem 1fr;
    column-gap: 0;
}

.ti-date[b-4mh540rbw1] {
    color: var(--ti-muted);
    font-size: 0.9rem;
    padding-top: 0.15rem;
    /* The date belongs to the whole day's entries, so it stays put while they scroll past. */
    position: sticky;
    top: 0.5rem;
    align-self: start;
}

.ti-entries[b-4mh540rbw1] {
    border-left: 2px solid var(--ti-border);
    padding: 0 0 1.4rem 1.25rem;
}
.ti-day:last-child .ti-entries[b-4mh540rbw1] { padding-bottom: 0; }

.ti-event[b-4mh540rbw1] {
    position: relative;
    padding-bottom: 0.9rem;
}
.ti-event:last-child[b-4mh540rbw1] { padding-bottom: 0; }

/* The marker on the rail. One per record, so a day with three records reads as three things
   that happened that day rather than as one block of text. */
.ti-event[b-4mh540rbw1]::before {
    content: "";
    position: absolute;
    left: calc(-1.25rem - 6px);
    top: 0.45rem;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--ti-surface);
    border: 2px solid var(--ti-border);
}

.ti-head[b-4mh540rbw1] {
    display: flex;
    flex-wrap: wrap;      /* long titles wrap instead of pushing the page sideways */
    align-items: baseline;
    gap: 0.4rem;
    margin-bottom: 0.15rem;
}
.ti-title[b-4mh540rbw1] {
    font-weight: 600;
    /* Wrap inside the word if a filename-shaped title has no spaces — the previous row was a
       nowrap flex line, which is how a long title turned into horizontal page scroll. */
    overflow-wrap: anywhere;
}
.ti-head .badge[b-4mh540rbw1] {
    font-weight: 500;
    font-size: 0.72rem;
    /* Baseline-aligned badges next to a link sat low; nudge them onto the title's line. */
    position: relative;
    top: -0.05em;
}

/* The topic-relevant passage. Quiet: it supports the title, it isn't the headline. */
.ti-quote[b-4mh540rbw1] {
    margin: 0.35rem 0 0.3rem;
    padding-left: 0.75rem;
    border-left: 3px solid color-mix(in srgb, var(--ti-accent) 45%, transparent);
    font-style: italic;
    color: var(--ti-text);
    font-size: 0.95rem;
    overflow-wrap: anywhere;
}
.ti-quote-note[b-4mh540rbw1] {
    display: block;
    font-style: normal;
    font-size: 0.78rem;
    color: var(--ti-muted);
    margin-top: 0.1rem;
}

.ti-gist[b-4mh540rbw1] {
    margin: 0.25rem 0 0;
    font-size: 0.9rem;
    color: var(--ti-muted);
    max-width: 75ch;      /* summaries are prose; full width is unreadable on a wide screen */
    overflow-wrap: anywhere;
}

/* Phones: 8.5rem of date beside a wrapped sentence leaves neither enough room. The date moves
   above its entries and the rail carries the continuity instead. */
@media (max-width: 575.98px) {
    .ti-day[b-4mh540rbw1] {
        grid-template-columns: 1fr;
    }
    .ti-date[b-4mh540rbw1] {
        position: static;
        font-weight: 600;
        color: var(--ti-text);
        margin-bottom: 0.3rem;
    }
    .ti-entries[b-4mh540rbw1] {
        border-left: 2px solid var(--ti-border);
        padding-left: 0.9rem;
    }
    .ti-event[b-4mh540rbw1]::before { left: calc(-0.9rem - 6px); }
}
