/* /Components/Agenda/NotificationBell.razor.rz.scp.css */
.bell-wrap[b-0rj3e7491r] {
    position: relative;
}

.bell[b-0rj3e7491r] {
    text-decoration: none;
    font-size: 1.1rem;
    line-height: 1;
    padding: .25rem .5rem;
    color: #1F1B1B;
}

.count[b-0rj3e7491r] {
    position: absolute;
    top: -2px;
    right: -2px;
    background: #FFD800;
    color: #1F1B1B;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 700;
    min-width: 1.1rem;
    height: 1.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 .25rem;
}

/* Invisible on purpose: it exists to catch the click that closes the panel, not to dim
   anything. Fixed to the viewport so it covers the sidebar and the page alike, and one
   layer below the panel so the panel stays clickable. */
.backdrop[b-0rj3e7491r] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

.panel[b-0rj3e7491r] {
    position: absolute;
    right: 0;
    top: 2.2rem;
    width: 21rem;
    max-width: 90vw;
    background: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .5rem;
    z-index: 1050;
    overflow: hidden;
}

.panel-head[b-0rj3e7491r] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    background: #f8f9fa;
    font-size: .85rem;
}

.item[b-0rj3e7491r] {
    display: flex;
    gap: .5rem;
    align-items: flex-start;
    padding: .5rem .75rem;
    border-bottom: 1px solid #f1f3f5;
}

.item-body[b-0rj3e7491r] {
    flex: 1;
    min-width: 0;
}

.item-title[b-0rj3e7491r] {
    font-size: .85rem;
    font-weight: 500;
}

.at[b-0rj3e7491r] {
    display: inline-block;
    background: #1F1B1B;
    color: #fff;
    border-radius: .2rem;
    font-size: .7rem;
    padding: 0 .3rem;
    margin-right: .3rem;
}

.item-detail[b-0rj3e7491r] {
    font-size: .75rem;
    color: #6c757d;
}

.empty[b-0rj3e7491r] {
    padding: 1rem .75rem;
    font-size: .85rem;
    color: #6c757d;
    text-align: center;
}

.panel-foot[b-0rj3e7491r] {
    display: block;
    text-align: center;
    padding: .5rem;
    font-size: .8rem;
    background: #f8f9fa;
    text-decoration: none;
}
/* /Components/Comms/ConversationLinksPanel.razor.rz.scp.css */
/* The panel folds into the conversation card, so it borrows the card's padding and only adds
   the layout its own rows need. The toggle is a quiet, ink-coloured summary line. */
.links-toggle[b-sswizaf0eo] {
    color: #1F1B1B;
    text-decoration: none;
    font-weight: 600;
}

.links-toggle:hover[b-sswizaf0eo] {
    color: #1F1B1B;
    text-decoration: none;
}

.links-caret[b-sswizaf0eo] {
    display: inline-block;
    width: 1rem;
    color: #6c757d;
}

/* Each link is a row: a small thumbnail (items only), the title and its meta, and a remove
   button pinned to the right. min-height keeps the remove target comfortable on a tablet. */
.links-list[b-sswizaf0eo] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    margin-top: .35rem;
}

.link-row[b-sswizaf0eo] {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-height: 44px;
    padding: .35rem .5rem;
    border: 1px solid #e9ecef;
    border-radius: .5rem;
}

.link-main[b-sswizaf0eo] {
    flex: 1 1 auto;
    min-width: 0;
}

.link-title[b-sswizaf0eo] {
    display: block;
    font-weight: 600;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

a.link-title:hover[b-sswizaf0eo] {
    text-decoration: underline;
}

/* Square thumbnail, cropped to fill — the same neutral placeholder the catalogue uses. */
.link-thumb[b-sswizaf0eo] {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: .4rem;
    overflow: hidden;
    background: #f1f3f5;
}

.link-thumb img[b-sswizaf0eo] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.link-thumb-empty[b-sswizaf0eo] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #adb5bd;
}

.link-remove[b-sswizaf0eo] {
    flex: 0 0 auto;
    line-height: 1;
}

/* A category's colour as a small dot beside its name. */
.cat-dot[b-sswizaf0eo] {
    display: inline-block;
    width: .6rem;
    height: .6rem;
    border-radius: 50%;
    flex: 0 0 auto;
}

/* The picker sits under the section on a faint tinted panel so it reads as a temporary tool
   rather than part of the list. Results are full-width buttons for an easy tap. */
.link-picker[b-sswizaf0eo] {
    padding: .5rem;
    border: 1px solid #e9ecef;
    border-radius: .5rem;
    background: #fbfbf7;
}

.link-result[b-sswizaf0eo] {
    display: flex;
    align-items: center;
    gap: .6rem;
    width: 100%;
    min-height: 44px;
    padding: .35rem .5rem;
    text-align: left;
    border: 1px solid transparent;
    border-radius: .5rem;
    background: #fff;
}

.link-result:hover[b-sswizaf0eo],
.link-result:focus-visible[b-sswizaf0eo] {
    border-color: #FFD800;
    background: #fffdf2;
}

.link-result:disabled[b-sswizaf0eo] {
    opacity: .6;
}
/* /Components/Comms/LinkedConversationList.razor.rz.scp.css */
/* Compact, tappable rows for a linked conversation: a bordered strip whose whole surface is
   the deep link into the inbox. 44px min-height keeps it comfortable under a finger. */
.linked-conversations[b-en3je5iomk] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

.linked-conversation-link[b-en3je5iomk] {
    display: block;
    min-height: 44px;
    padding: .45rem .6rem;
    border: 1px solid #e9ecef;
    border-radius: .5rem;
    text-decoration: none;
    color: inherit;
}

.linked-conversation-link:hover[b-en3je5iomk],
.linked-conversation-link:focus-visible[b-en3je5iomk] {
    border-color: #FFD800;
    background: #fffdf2;
}
/* /Components/Holidays/HolidayRangePicker.razor.rz.scp.css */
.picker[b-v7acszjoym] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .5rem;
    padding: .75rem;
}

.picker-head[b-v7acszjoym] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .75rem;
}

.picker-title[b-v7acszjoym] {
    font-weight: 600;
    font-size: .95rem;
}

.months[b-v7acszjoym] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 1rem;
}

.month-name[b-v7acszjoym] {
    font-size: .8rem;
    font-weight: 600;
    margin-bottom: .35rem;
}

.weekday-row[b-v7acszjoym],
.day-grid[b-v7acszjoym] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
}

.weekday[b-v7acszjoym] {
    text-align: center;
    font-size: .7rem;
    color: #6c757d;
    padding-bottom: .2rem;
}

/* Day cells are real buttons so they are keyboard reachable and announce as controls. */
.day[b-v7acszjoym] {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    border: 1px solid transparent;
    border-radius: .25rem;
    background: transparent;
    padding: 0;
    color: inherit;
    cursor: pointer;
}

.day:hover:not(:disabled)[b-v7acszjoym] {
    border-color: #0d6efd;
}

.day:focus-visible[b-v7acszjoym] {
    outline: 2px solid #0d6efd;
    outline-offset: 1px;
}

.day.blank[b-v7acszjoym] {
    visibility: hidden;
    pointer-events: none;
}

.day.selected[b-v7acszjoym] {
    background: #0d6efd;
    color: #fff;
    font-weight: 600;
}

.day.selected.half[b-v7acszjoym] {
    background: linear-gradient(135deg, #0d6efd 50%, #e7f1ff 50%);
    color: #084298;
}

.day.booked[b-v7acszjoym] {
    background: #198754;
    color: #fff;
    cursor: not-allowed;
    opacity: .65;
}

.day.holiday[b-v7acszjoym] {
    background: #cfe2ff;
    color: #084298;
}

.day.nonworking[b-v7acszjoym] {
    background: #f1f3f5;
    color: #adb5bd;
}

.legend[b-v7acszjoym] {
    display: flex;
    flex-wrap: wrap;
    gap: .9rem;
    margin-top: .75rem;
    font-size: .75rem;
    color: #6c757d;
}

.legend span[b-v7acszjoym] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
}

.swatch[b-v7acszjoym] {
    width: .75rem;
    height: .75rem;
    border-radius: .2rem;
    display: inline-block;
}

.swatch.selected[b-v7acszjoym] { background: #0d6efd; }
.swatch.selected.half[b-v7acszjoym] { background: linear-gradient(135deg, #0d6efd 50%, #e7f1ff 50%); }
.swatch.booked[b-v7acszjoym] { background: #198754; opacity: .65; }
.swatch.holiday[b-v7acszjoym] { background: #cfe2ff; }
.swatch.nonworking[b-v7acszjoym] { background: #f1f3f5; border: 1px solid #dee2e6; }
/* /Components/Holidays/YearCalendar.razor.rz.scp.css */
.year-grid[b-o47xnwreei] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
    gap: 1rem;
}

.month[b-o47xnwreei] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .5rem;
    padding: .6rem;
}

.month-name[b-o47xnwreei] {
    margin: 0 0 .4rem;
    font-size: .85rem;
    font-weight: 600;
}

.weekday-row[b-o47xnwreei],
.day-grid[b-o47xnwreei] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}

.weekday[b-o47xnwreei] {
    text-align: center;
    font-size: .65rem;
    color: #6c757d;
    padding-bottom: .2rem;
}

.day[b-o47xnwreei] {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .7rem;
    border-radius: .2rem;
    background: transparent;
    cursor: default;
}

.day.blank[b-o47xnwreei] {
    visibility: hidden;
}

/* Approved and pending win over the holiday and non-working styling, so a booked
   block reads as one continuous run even when it spans a weekend. */
.day.approved[b-o47xnwreei] {
    background: #198754;
    color: #fff;
    font-weight: 600;
}

.day.pending[b-o47xnwreei] {
    background: #ffc107;
    color: #212529;
    font-weight: 600;
}

/* A half day is drawn as a diagonal split so it is distinguishable at a glance from a
   full day without needing a separate colour. */
.day.approved.half[b-o47xnwreei] {
    background: linear-gradient(135deg, #198754 50%, #e9ecef 50%);
    color: #212529;
}

.day.pending.half[b-o47xnwreei] {
    background: linear-gradient(135deg, #ffc107 50%, #e9ecef 50%);
}

.day.holiday[b-o47xnwreei] {
    background: #cfe2ff;
    color: #084298;
}

.day.nonworking[b-o47xnwreei] {
    background: #f1f3f5;
    color: #adb5bd;
}

.legend[b-o47xnwreei] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1rem;
    font-size: .8rem;
    color: #6c757d;
}

.legend span[b-o47xnwreei] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.swatch[b-o47xnwreei] {
    width: .8rem;
    height: .8rem;
    border-radius: .2rem;
    display: inline-block;
}

.swatch.approved[b-o47xnwreei] { background: #198754; }
.swatch.pending[b-o47xnwreei] { background: #ffc107; }
.swatch.holiday[b-o47xnwreei] { background: #cfe2ff; }
.swatch.nonworking[b-o47xnwreei] { background: #f1f3f5; border: 1px solid #dee2e6; }
.swatch.approved.half[b-o47xnwreei] { background: linear-gradient(135deg, #198754 50%, #e9ecef 50%); }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-c7ja3qlefa] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-c7ja3qlefa] {
    flex: 1;
}

.sidebar[b-c7ja3qlefa] {
    /* Brand near-black, lifted very slightly towards the bottom so the panel has some
       depth without becoming a second colour. */
    background-image: linear-gradient(180deg, #1F1B1B 0%, #2b2725 100%);
}

.top-row[b-c7ja3qlefa] {
    background-color: #fff;
    border-bottom: 3px solid #FFD800;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

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

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

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

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

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

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

    .sidebar[b-c7ja3qlefa] {
        width: 250px;
        /* 100vh first as a fallback for engines that don't understand dvh; 100dvh then wins on
           modern engines so the sidebar tracks the *visible* viewport (iOS URL bar excluded). */
        height: 100vh;
        height: 100dvh;
        position: sticky;
        top: 0;
    }

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

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

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

#blazor-error-ui[b-c7ja3qlefa] {
    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-c7ja3qlefa] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/*
    Ink on white, not the stock template's white-on-dark. The brand bar behind this control
    is white (see .top-row below) so that the JPEG logo sits on its own background — which
    left the inherited white glyph, white fill and white border invisible against it. The
    control still worked, so on a phone the menu read as missing entirely rather than
    collapsed: nothing to see and nothing to tap. Any restyle of .top-row has to keep this
    contrast.
*/
.navbar-toggler[b-1bd2o3qcrb] {
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    /* Above the brand bar regardless of how the two are positioned in future. */
    z-index: 2;
    border: 1px solid rgba(31, 27, 27, 0.25);
    border-radius: 4px;
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%231F1B1B' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem transparent;
}

.navbar-toggler:checked[b-1bd2o3qcrb] {
    background-color: rgba(31, 27, 27, 0.1);
}

/* Keyboard focus has to be visible against white too — brand yellow, as elsewhere. */
.navbar-toggler:focus-visible[b-1bd2o3qcrb] {
    outline: 3px solid #FFD800;
    outline-offset: 2px;
}

/* 44px minimum touch target on touch devices, per the tablet-friendly convention. */
@media (pointer: coarse) {
    .navbar-toggler[b-1bd2o3qcrb] {
        height: 2.75rem;
    }
}

.top-row[b-1bd2o3qcrb] {
    min-height: 4.75rem;
    background-color: #fff;
    border-bottom: 3px solid #FFD800;
    padding: .5rem .75rem;
}

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

.brand-logo[b-1bd2o3qcrb] {
    display: block;
    max-width: 100%;
    height: auto;
    /* The source artwork is only 215px wide, so it is never scaled up past its natural
       size — enlarging it just makes the JPEG artefacts visible. */
    width: 190px;
}

.bi[b-1bd2o3qcrb] {
    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-1bd2o3qcrb] {
    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-plus-square-fill-nav-menu[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-1bd2o3qcrb] {
    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");
}

.bi-lock-nav-menu[b-1bd2o3qcrb] {
    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 d='M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2zM5 8h6a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1z'/%3E%3C/svg%3E");
}

.bi-person-nav-menu[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-person' viewBox='0 0 16 16'%3E%3Cpath d='M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z'/%3E%3C/svg%3E");
}

.bi-person-badge-nav-menu[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-person-badge' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 2a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0z'/%3E%3Cpath d='M4.5 0A2.5 2.5 0 0 0 2 2.5V14a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2.5A2.5 2.5 0 0 0 11.5 0h-7zM3 2.5A1.5 1.5 0 0 1 4.5 1h7A1.5 1.5 0 0 1 13 2.5v10.795a4.2 4.2 0 0 0-.776-.492C11.392 12.387 10.063 12 8 12s-3.392.387-4.224.803a4.2 4.2 0 0 0-.776.492V2.5z'/%3E%3C/svg%3E");
}

.bi-person-fill-nav-menu[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-person-fill' viewBox='0 0 16 16'%3E%3Cpath d='M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z'/%3E%3C/svg%3E");
}

.bi-arrow-bar-left-nav-menu[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-arrow-bar-left' viewBox='0 0 16 16'%3E%3Cpath d='M12.5 15a.5.5 0 0 1-.5-.5v-13a.5.5 0 0 1 1 0v13a.5.5 0 0 1-.5.5ZM10 8a.5.5 0 0 1-.5.5H3.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L3.707 7.5H9.5a.5.5 0 0 1 .5.5Z'/%3E%3C/svg%3E");
}

/* The BejaBikeTraining module's icon — a mortarboard glyph in the sidebar's white. Keyed on
   the `bi-mortarboard` identifier the TrainingModule sets, in the same way the hardcoded nav
   icons above map an identifier to a custom SVG background. */
.bi-mortarboard[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-mortarboard-fill' viewBox='0 0 16 16'%3E%3Cpath d='M8.211 2.047a.5.5 0 0 0-.422 0l-7.5 3.5a.5.5 0 0 0 .025.917l7.5 3a.5.5 0 0 0 .372 0L14 7.14V13a1 1 0 0 0-1 1v2h3v-2a1 1 0 0 0-1-1V6.739l.686-.275a.5.5 0 0 0 .025-.917z'/%3E%3Cpath d='M4.176 9.032a.5.5 0 0 0-.656.327l-.5 1.7a.5.5 0 0 0 .294.605l4.5 1.8a.5.5 0 0 0 .372 0l4.5-1.8a.5.5 0 0 0 .294-.605l-.5-1.7a.5.5 0 0 0-.656-.327L8 10.466z'/%3E%3C/svg%3E");
}

/* The remaining module icons, keyed the same way: each IAppModule declares a Bootstrap Icons
   class name and the sidebar draws it from the authentic BI glyph below, in the sidebar's
   white. AgendaModule → calendar-event, CommsModule → inbox, ChannelsModule → broadcast,
   HolidaysModule → calendar-week, ItemsModule → tag, UsersModule → people. */
.bi-calendar-event[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-calendar-event' viewBox='0 0 16 16'%3E%3Cpath d='M11 6.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5z'/%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-inbox[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-inbox' viewBox='0 0 16 16'%3E%3Cpath d='M4.98 4a.5.5 0 0 0-.39.188L1.54 8H6a.5.5 0 0 1 .5.5 1.5 1.5 0 1 0 3 0A.5.5 0 0 1 10 8h4.46l-3.05-3.812A.5.5 0 0 0 11.02 4zm-1.17-.437A1.5 1.5 0 0 1 4.98 3h6.04a1.5 1.5 0 0 1 1.17.563l3.7 4.625a.5.5 0 0 1 .106.374l-.39 3.124A1.5 1.5 0 0 1 14.117 13H1.883a1.5 1.5 0 0 1-1.489-1.314l-.39-3.124a.5.5 0 0 1 .106-.374z'/%3E%3C/svg%3E");
}

.bi-broadcast[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-broadcast' viewBox='0 0 16 16'%3E%3Cpath d='M3.05 3.05a7 7 0 0 0 0 9.9.5.5 0 0 1-.707.707 8 8 0 0 1 0-11.314.5.5 0 0 1 .707.707m2.122 2.122a4 4 0 0 0 0 5.656.5.5 0 1 1-.708.708 5 5 0 0 1 0-7.072.5.5 0 0 1 .708.708m5.656-.708a.5.5 0 0 1 .708 0 5 5 0 0 1 0 7.072.5.5 0 1 1-.708-.708 4 4 0 0 0 0-5.656.5.5 0 0 1 0-.708m2.122-2.12a.5.5 0 0 1 .707 0 8 8 0 0 1 0 11.313.5.5 0 0 1-.707-.707 7 7 0 0 0 0-9.9.5.5 0 0 1 0-.707zM10 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0'/%3E%3C/svg%3E");
}

.bi-calendar-week[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-calendar-week' viewBox='0 0 16 16'%3E%3Cpath d='M11 6.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm-3 0a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm-5 3a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm3 0a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5z'/%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-tag[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-tag' viewBox='0 0 16 16'%3E%3Cpath d='M6 4.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0M5 4.5a.5.5 0 1 0-1 0 .5.5 0 0 0 1 0'/%3E%3Cpath d='M2 1a1 1 0 0 0-1 1v4.586a1 1 0 0 0 .293.707l7 7a1 1 0 0 0 1.414 0l4.586-4.586a1 1 0 0 0 0-1.414l-7-7A1 1 0 0 0 6.586 1zm0 5V2h4.586l7 7L9 13.586z'/%3E%3C/svg%3E");
}

.bi-people[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-people' viewBox='0 0 16 16'%3E%3Cpath d='M15 14s1 0 1-1-1-4-5-4-5 3-5 4 1 1 1 1zm-7.978-1L7 12.996c.001-.264.167-1.03.76-1.72C8.312 9.629 9.282 9 11 9c1.717 0 2.687.63 3.24 1.276.593.69.758 1.457.76 1.72l-.008.002-.014.002zM11 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4m3-2a3 3 0 1 1-6 0 3 3 0 0 1 6 0M6.936 9.28a6 6 0 0 0-1.23-.247A7 7 0 0 0 5 9c-4 0-5 3-5 4q0 1 1 1h4.216A2.24 2.24 0 0 1 5 13c0-1.01.377-2.042 1.09-2.904.243-.294.526-.569.846-.816M4.92 10A5.5 5.5 0 0 0 4 13H1c0-.26.164-1.03.76-1.724.545-.636 1.492-1.256 3.16-1.275ZM1.5 5.5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m3-2a2 2 0 1 0 0 4 2 2 0 0 0 0-4'/%3E%3C/svg%3E");
}

.bi-shield-lock[b-1bd2o3qcrb] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-shield-lock' viewBox='0 0 16 16'%3E%3Cpath d='M5.338 1.59a61 61 0 0 0-2.837.856.48.48 0 0 0-.328.39c-.554 4.157.726 7.19 2.253 9.188a10.7 10.7 0 0 0 2.287 2.233c.346.244.652.42.893.533q.18.085.293.118a1 1 0 0 0 .101.025 1 1 0 0 0 .1-.025q.114-.034.294-.118c.24-.113.547-.29.893-.533a10.7 10.7 0 0 0 2.287-2.233c1.527-1.997 2.807-5.031 2.253-9.188a.48.48 0 0 0-.328-.39c-.651-.213-1.75-.56-2.837-.855C9.552 1.29 8.531 1.067 8 1.067c-.53 0-1.552.223-2.662.524zM5.072.56C6.157.265 7.31 0 8 0s1.843.265 2.928.56c1.11.3 2.229.655 2.887.87a1.54 1.54 0 0 1 1.044 1.262c.596 4.477-.787 7.795-2.465 9.99a11.8 11.8 0 0 1-2.517 2.453 7 7 0 0 1-1.048.625c-.28.132-.581.24-.829.24s-.548-.108-.829-.24a7 7 0 0 1-1.048-.625 11.8 11.8 0 0 1-2.517-2.453C1.928 10.487.545 7.169 1.141 2.692A1.54 1.54 0 0 1 2.185 1.43 63 63 0 0 1 5.072.56'/%3E%3Cpath d='M9.5 6.5a1.5 1.5 0 0 1-1 1.415l.385 1.99a.5.5 0 0 1-.491.595h-.788a.5.5 0 0 1-.49-.595l.384-1.99a1.5 1.5 0 1 1 2-1.415'/%3E%3C/svg%3E");
}

/* A section label, not a link: small, quiet and lettered wide, so it reads as a divider
   between the day-to-day modules above it and the administration ones below. */
.nav-group-header[b-1bd2o3qcrb] {
    font-size: 0.7rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.45);
    padding-top: 0.75rem;
    padding-bottom: 0.35rem;
    /* Aligned with the labels, past the reserved active marker. */
    margin-left: .75rem;
}

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

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

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

    .nav-item[b-1bd2o3qcrb]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
        /* Reserved so the active marker does not shift the label sideways. */
        border-left: 3px solid transparent;
        padding-left: .75rem;
    }

/* Brand yellow marks the current page. Used as a rule and as text colour rather than a
   fill, because a solid yellow block would compete with the logo directly above it. */
.nav-item[b-1bd2o3qcrb]  a.active {
    background-color: rgba(255, 216, 0, 0.12);
    border-left-color: #FFD800;
    color: #FFD800;
    font-weight: 600;
}

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

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

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

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

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

        /* Allow sidebar to scroll for tall menus. Subtract the real top-row height (4.75rem,
           see .top-row min-height above), not 3.5rem. 100vh is the fallback for old engines;
           100dvh then wins so the scroll area matches the visible viewport on iOS. */
        height: calc(100vh - 4.75rem);
        height: calc(100dvh - 4.75rem);
        overflow-y: auto;
    }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
/* Both content blocks are hidden until Blazor puts the modal into a matching state. */
.reconnect-while-retrying[b-pexdbarkx9],
.reconnect-while-failed[b-pexdbarkx9] {
    display: none;
}

/* Trying to resume: first attempt, an active retry, or a server-paused circuit. */
#components-reconnect-modal.components-reconnect-show .reconnect-while-retrying[b-pexdbarkx9],
#components-reconnect-modal.components-reconnect-retrying .reconnect-while-retrying[b-pexdbarkx9],
#components-reconnect-modal.components-reconnect-paused .reconnect-while-retrying[b-pexdbarkx9] {
    display: block;
}

/* Gave up: retries exhausted, the socket was rejected, or resuming a paused circuit failed. */
#components-reconnect-modal.components-reconnect-failed .reconnect-while-failed[b-pexdbarkx9],
#components-reconnect-modal.components-reconnect-rejected .reconnect-while-failed[b-pexdbarkx9],
#components-reconnect-modal.components-reconnect-resume-failed .reconnect-while-failed[b-pexdbarkx9] {
    display: block;
}

#components-reconnect-modal[b-pexdbarkx9] {
    /* Centred and comfortably sized for a tablet held at arm's length. */
    background-color: white;
    color: #1f1b1b;
    width: min(22rem, calc(100vw - 2rem));
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    font-size: 1.05rem;
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-pexdbarkx9 0.5s both;
}

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

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

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

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

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

    100% {
        opacity: 1;
    }
}

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

    100% {
        opacity: 0;
    }
}

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

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

#components-reconnect-modal button[b-pexdbarkx9] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    /* Large, finger-friendly tap target. */
    padding: 0.6rem 1.75rem;
    font-size: 1rem;
    border-radius: 4px;
    cursor: pointer;
}

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

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

/* Expanding-ring spinner shown while resuming. */
.reconnect-spinner[b-pexdbarkx9] {
    position: relative;
    width: 80px;
    height: 80px;
}

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

        .reconnect-spinner div:nth-child(2)[b-pexdbarkx9] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-pexdbarkx9 {
    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;
    }
}
/* /Components/Pages/Agenda/AgendaCalendar.razor.rz.scp.css */
.month-grid[b-u0jjsbev7w] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
}

.weekday[b-u0jjsbev7w] {
    font-size: .75rem;
    font-weight: 600;
    color: #6c757d;
    text-align: center;
    padding-bottom: .25rem;
}

.day[b-u0jjsbev7w] {
    min-height: 6rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .35rem;
    background: #fff;
    padding: .3rem;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 2px;
    cursor: pointer;
    overflow: hidden;
}

.day:hover[b-u0jjsbev7w] {
    border-color: #1F1B1B;
}

.day.blank[b-u0jjsbev7w] {
    visibility: hidden;
    pointer-events: none;
}

.day.is-today .day-number[b-u0jjsbev7w] {
    background: #1F1B1B;
    color: #fff;
    border-radius: 999px;
    padding: 0 .4rem;
}

.day.is-selected[b-u0jjsbev7w] {
    border-color: #1F1B1B;
    box-shadow: inset 0 0 0 2px #FFD800;
}

.day-number[b-u0jjsbev7w] {
    font-size: .8rem;
    font-weight: 600;
    align-self: flex-start;
}

/* Chips are colour-coded by category and clipped rather than wrapped, so a busy day
   cannot stretch the whole row. */
.chip[b-u0jjsbev7w] {
    font-size: .68rem;
    line-height: 1.25;
    padding: 1px 4px;
    border-radius: .2rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border-left: 3px solid transparent;
    background: #f1f3f5;
}

.chip.cat-reuniao[b-u0jjsbev7w] { background: #e7f1ff; border-left-color: #0d6efd; }
.chip.cat-entrega[b-u0jjsbev7w] { background: #e6f4ea; border-left-color: #198754; }
.chip.cat-manutencao[b-u0jjsbev7w] { background: #fff3cd; border-left-color: #ffc107; }
.chip.cat-formacao[b-u0jjsbev7w] { background: #efe3fb; border-left-color: #6f42c1; }
.chip.cat-evento[b-u0jjsbev7w] { background: #ffe8d6; border-left-color: #fd7e14; }
.chip.cat-outro[b-u0jjsbev7w] { background: #f1f3f5; border-left-color: #adb5bd; }

.more[b-u0jjsbev7w] {
    font-size: .65rem;
    color: #6c757d;
}

@media (max-width: 700px) {
    .day[b-u0jjsbev7w] {
        min-height: 4.5rem;
    }

    .chip[b-u0jjsbev7w] {
        font-size: .6rem;
    }
}
/* /Components/Pages/Agenda/AgendaCategories.razor.rz.scp.css */
.chip-preview[b-hfs864xmzb] {
    display: inline-block;
    font-size: .68rem;
    line-height: 1.25;
    padding: 1px 4px;
    border-radius: .2rem;
    border-left: 3px solid transparent;
    white-space: nowrap;
}
/* /Components/Pages/Artigos/Catalogue.razor.rz.scp.css */
/* Cards reflow to fit whatever width the tablet gives them — three or four across on an
   iPad in landscape, two in portrait, without a media query per breakpoint. */
.item-grid[b-c4kgvv9umb] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 1rem;
}

.item-card[b-c4kgvv9umb] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .5rem;
    overflow: hidden;
    background: #fff;
    color: inherit;
    text-decoration: none;
    transition: border-color .12s ease, box-shadow .12s ease;
}

.item-card:hover[b-c4kgvv9umb],
.item-card:focus-visible[b-c4kgvv9umb] {
    border-color: #1F1B1B;
    box-shadow: 0 2px 10px rgba(31, 27, 27, .12);
    outline: none;
}

.item-thumb[b-c4kgvv9umb] {
    aspect-ratio: 4 / 3;
    background: #f6f6f4;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.item-thumb img[b-c4kgvv9umb] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.item-thumb-empty[b-c4kgvv9umb] {
    color: #b9b4b0;
}

.item-body[b-c4kgvv9umb] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: .6rem .7rem .75rem;
}

/* Two lines at most, clipped rather than wrapped, so a long title cannot make one card
   taller than its neighbours in the row. */
.item-title[b-c4kgvv9umb] {
    font-weight: 600;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.item-price[b-c4kgvv9umb] {
    font-size: 1.05rem;
    font-weight: 700;
    color: #1F1B1B;
}

.item-tags[b-c4kgvv9umb] {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    align-items: center;
}

.item-interest[b-c4kgvv9umb] {
    font-weight: 500;
}

/* On a phone, two comfortable columns rather than one oversized card. */
@media (max-width: 575px) {
    .item-grid[b-c4kgvv9umb] {
        grid-template-columns: repeat(2, 1fr);
        gap: .6rem;
    }
}
/* /Components/Pages/Artigos/ItemDetail.razor.rz.scp.css */
.gallery-main[b-cc21hfvojc] {
    aspect-ratio: 4 / 3;
    background: #f6f6f4;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .5rem;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* The whole photo, letterboxed rather than cropped — on a detail page the buyer wants to
   see all of it, not a tidy square. */
.gallery-main img[b-cc21hfvojc] {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.gallery-empty[b-cc21hfvojc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    color: #b9b4b0;
}

.gallery-thumbs[b-cc21hfvojc] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .5rem;
}

/* 64px keeps the thumbnails a comfortable tap target on a tablet. */
.gallery-thumb[b-cc21hfvojc] {
    width: 64px;
    height: 64px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: .4rem;
    overflow: hidden;
    background: #f6f6f4;
    cursor: pointer;
}

.gallery-thumb img[b-cc21hfvojc] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery-thumb.is-active[b-cc21hfvojc] {
    border-color: #1F1B1B;
    box-shadow: inset 0 0 0 2px #FFD800;
}

.item-price[b-cc21hfvojc] {
    font-size: 1.4rem;
    font-weight: 700;
    color: #1F1B1B;
}

/* Descriptions arrive as plain text with their own line breaks; keep them. */
.item-description[b-cc21hfvojc] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.interest-list[b-cc21hfvojc] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.interest-item[b-cc21hfvojc] {
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    padding-bottom: .5rem;
}

.interest-item:last-child[b-cc21hfvojc] {
    border-bottom: 0;
    padding-bottom: 0;
}

.interest-remove[b-cc21hfvojc] {
    line-height: 1;
}
/* /Components/Pages/Artigos/ItemEdit.razor.rz.scp.css */
.edit-thumbs[b-vjuzoozqda] {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.edit-thumb[b-vjuzoozqda] {
    position: relative;
    width: 150px;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .5rem;
    overflow: hidden;
    background: #f6f6f4;
    display: flex;
    flex-direction: column;
}

/* The main photo is ringed so it is obvious which one the catalogue card will show. */
.edit-thumb.is-main[b-vjuzoozqda] {
    border-color: #1F1B1B;
    box-shadow: inset 0 0 0 2px #FFD800;
}

.edit-thumb img[b-vjuzoozqda] {
    width: 100%;
    height: 112px;
    object-fit: cover;
}

.edit-thumb-badge[b-vjuzoozqda] {
    position: absolute;
    top: .35rem;
    left: .35rem;
}

.edit-thumb-actions[b-vjuzoozqda] {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    padding: .4rem;
}
/* /Components/Pages/Artigos/ItemStatusBadge.razor.rz.scp.css */
.item-status[b-xyrmwe08r4] {
    font-weight: 600;
}

/* A sold item keeps its badge but strikes it through, so the catalogue reads "gone" at a
   glance without losing the colour code. */
.item-status.is-sold[b-xyrmwe08r4] {
    text-decoration: line-through;
}
/* /Components/Pages/Comms/Inbox.razor.rz.scp.css */
/* The list scrolls inside itself so a busy inbox never pushes the open thread off the
   bottom of the page — the two panes stay side by side however much arrives. */
.conversation-list[b-rlg61mk699] {
    max-height: 70vh;
    overflow-y: auto;
}

.conversation-list .list-group-item[b-rlg61mk699] {
    text-align: left;
}

.conversation-list .list-group-item.is-selected[b-rlg61mk699] {
    background: #fffdf2;
    box-shadow: inset 0 0 0 2px #FFD800;
}

/* One line, clipped rather than wrapped: the snippet is a hint, and a long first
   paragraph must not make one row as tall as the rest of the list. */
.snippet[b-rlg61mk699] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.timeline[b-rlg61mk699] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    max-height: 55vh;
    overflow-y: auto;
}

.msg[b-rlg61mk699] {
    max-width: 85%;
    border-radius: .6rem;
    padding: .45rem .65rem;
}

/* Theirs on the left in grey, ours on the right in the brand ink — the side alone says
   who wrote it, before anyone reads the name. */
.msg.in[b-rlg61mk699] {
    align-self: flex-start;
    background: #f1f3f5;
}

.msg.out[b-rlg61mk699] {
    align-self: flex-end;
    background: #1F1B1B;
    color: #fff;
}

.msg-meta[b-rlg61mk699] {
    font-size: .7rem;
    opacity: .7;
    margin-bottom: .15rem;
}

/* Emails arrive as plain text with their own line breaks; keep them. */
.msg-body[b-rlg61mk699] {
    font-size: .9rem;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.event[b-rlg61mk699] {
    align-self: center;
    text-align: center;
}

/* Attachments sit under the body as a small stack of download chips. */
.msg-attachments[b-rlg61mk699] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    margin-top: .4rem;
}

.msg-attachments .attachment[b-rlg61mk699] {
    display: inline-flex;
    align-items: baseline;
    gap: .35rem;
    max-width: 100%;
    padding: .15rem .4rem;
    border-radius: .35rem;
    font-size: .8rem;
    text-decoration: none;
}

/* On our own (dark) bubble the default link colour disappears; lift it. */
.msg.out .msg-attachments .attachment[b-rlg61mk699] {
    color: #ffe680;
}

.msg-attachments .attachment-name[b-rlg61mk699] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.msg-attachments .attachment-size[b-rlg61mk699] {
    flex-shrink: 0;
    opacity: .7;
}
/* /Components/Pages/Gestao/Canais.razor.rz.scp.css */
/* Mailbox addresses and page ids are long and unbreakable by the browser's own rules;
   let them wrap inside their cell rather than pushing the table past the page. */
.channels-table td.address[b-3c6lnhboka] {
    overflow-wrap: anywhere;
    min-width: 12rem;
}

/* Said quietly, under the kind it qualifies: the channel is configurable today and will
   only carry messages once Meta's integration is done. */
.pending-note[b-3c6lnhboka] {
    font-size: .72rem;
    line-height: 1.2;
}

/* The access editor drops in as a full-width row beneath the channel it belongs to; its
   user checklist scrolls rather than pushing the whole table down by an entire roster. */
.access-users[b-3c6lnhboka] {
    max-height: 14rem;
    overflow-y: auto;
}
/* /Components/Pages/Holidays/HolidayTeamMap.razor.rz.scp.css */
.team-map table[b-3b4hjjsk8j] {
    table-layout: fixed;
}

.team-map .name-col[b-3b4hjjsk8j] {
    width: 12rem;
    min-width: 12rem;
    position: sticky;
    left: 0;
    background: var(--bs-body-bg, #fff);
    z-index: 1;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.team-map .day-col[b-3b4hjjsk8j] {
    width: 1.6rem;
    min-width: 1.6rem;
    padding: 0;
    text-align: center;
    height: 1.8rem;
}

.team-map thead .day-col[b-3b4hjjsk8j] {
    font-size: .6rem;
    line-height: 1.1;
    font-weight: 500;
    color: #6c757d;
}

.team-map .dow[b-3b4hjjsk8j],
.team-map .dom[b-3b4hjjsk8j] {
    display: block;
}

.team-map .total-col[b-3b4hjjsk8j] {
    width: 3.5rem;
    min-width: 3.5rem;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.team-map td.approved[b-3b4hjjsk8j] { background: #198754; }
.team-map td.pending[b-3b4hjjsk8j] { background: #ffc107; }
.team-map .is-holiday[b-3b4hjjsk8j] { background: #cfe2ff; }

/* Diagonal split marks a half day without introducing another colour. */
.team-map td.approved.half[b-3b4hjjsk8j] { background: linear-gradient(135deg, #198754 50%, #e9ecef 50%); }
.team-map td.pending.half[b-3b4hjjsk8j] { background: linear-gradient(135deg, #ffc107 50%, #e9ecef 50%); }

.swatch[b-3b4hjjsk8j] {
    width: .8rem;
    height: .8rem;
    border-radius: .2rem;
    display: inline-block;
    margin-right: .35rem;
    vertical-align: -1px;
}

.swatch.approved[b-3b4hjjsk8j] { background: #198754; }
.swatch.pending[b-3b4hjjsk8j] { background: #ffc107; }
.swatch.holiday[b-3b4hjjsk8j] { background: #cfe2ff; }
.swatch.approved.half[b-3b4hjjsk8j] { background: linear-gradient(135deg, #198754 50%, #e9ecef 50%); }
/* /Components/Pages/Home.razor.rz.scp.css */
.time-pill[b-aecpyzqevv] {
    display: inline-block;
    background: #1F1B1B;
    color: #fff;
    border-radius: .25rem;
    font-size: .72rem;
    padding: .1rem .4rem;
    white-space: nowrap;
    min-width: 5.5rem;
    text-align: center;
}

/* Appointments the reader is on stay at full strength and carry a brand accent.
   Everything else recedes rather than disappearing — the day should still read as a
   whole, just without competing for attention. */
.appt.mine[b-aecpyzqevv] {
    border-left: 3px solid #FFD800;
    padding-left: .5rem;
}

.appt.theirs[b-aecpyzqevv] {
    opacity: .55;
}

.appt.theirs .time-pill[b-aecpyzqevv] {
    background: #adb5bd;
}

.appt.theirs:hover[b-aecpyzqevv] {
    opacity: 1;
}
/* /Components/Pages/Treinos/ClientDetail.razor.rz.scp.css */
.training-price[b-jmaigt0inn] {
    font-size: 1.4rem;
    font-weight: 700;
    color: #1F1B1B;
}

/* Notes arrive as plain text with their own line breaks; keep them. */
.training-notes[b-jmaigt0inn] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
/* /Components/Pages/Treinos/Clients.razor.rz.scp.css */
/* The whole row is the link into the client's page, so it reads as clickable and gives a
   comfortable tap target on a tablet without a fiddly link on the name alone. */
.training-row[b-6c3k39koot] {
    cursor: pointer;
}

.training-row:hover[b-6c3k39koot] {
    background-color: rgba(31, 27, 27, .04);
}
/* /Components/Pages/Treinos/Payments.razor.rz.scp.css */
/* The month and year pickers size to their content rather than stretching across the bar,
   so the ‹ › steppers stay beside them as one compact control on a tablet. */
.training-month[b-w86qnmiu0g],
.training-year[b-w86qnmiu0g] {
    width: auto;
    flex: 0 0 auto;
}
/* /Components/Training/MonthlyStatusBadge.razor.rz.scp.css */
.training-status[b-b7fda5l99s] {
    font-weight: 600;
}
/* /Components/Training/TrainingStatusBadge.razor.rz.scp.css */
.training-status[b-3wi2c7sqcs] {
    font-weight: 600;
}
