@import '_content/Blazor.Bootstrap/Blazor.Bootstrap.olwso25aue.bundle.scp.css';

/* /Components/Layout/KioskLayout.razor.rz.scp.css */
/* Fixed to the screen, not min-height — a wall-mounted kiosk has nobody to scroll it, so
   content can never be allowed to run off the bottom edge. Overflow is handled by the
   auto-scroll script in KioskLayout.razor instead of a scrollbar nobody can reach. */
.kiosk-main[b-5jr5l2s74k] {
    padding: 2rem 2.5rem;
    height: 100vh;
    overflow-y: hidden;
    box-sizing: border-box;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-ee4f30vrem] {
    position: relative;
    display: flex;
    flex-direction: column;
}

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

.sidebar[b-ee4f30vrem] {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
    display: flex;
    flex-direction: column;
}

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

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

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

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

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

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

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

    /* Window-height and sticky, so it scrolls on its own when expanded nav sections run
       past the bottom of the screen, instead of spilling out over the page below. */
    .sidebar[b-ee4f30vrem] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
        overflow-y: auto;
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
    }

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

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

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

#blazor-error-ui[b-ee4f30vrem] {
    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-ee4f30vrem] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

/* Hideable sidebar (desktop only — on a phone the nav already stacks above the page).
   App.razor's __toggleNav sets data-nav-hidden on <html>; NavMenu's ☰ hides the sidebar
   and this one brings it back. It floats at the top-left of the page content, so the
   page's .page-header h1 (1.5rem, line-height 1.2 — matched here) flows in beside it. */
.nav-show-btn[b-ee4f30vrem] {
    display: none;
}

@media (min-width: 641px) {
    :root[data-nav-hidden] .sidebar[b-ee4f30vrem] {
        display: none;
    }

    :root[data-nav-hidden] .nav-show-btn[b-ee4f30vrem] {
        display: block;
        float: left;
        margin: 0 0.5rem 0 -0.4rem;
        padding: 0 0.4rem;
        border: 0;
        border-radius: 0.375rem;
        background: none;
        color: var(--bs-secondary-color);
        font-size: 1.5rem;
        line-height: 1.2;
    }

    :root[data-nav-hidden] .nav-show-btn:hover[b-ee4f30vrem] {
        color: var(--bs-body-color);
        background-color: var(--bs-tertiary-bg);
    }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-wosposc6ch] {
    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-wosposc6ch] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-wosposc6ch] {
    height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-wosposc6ch] {
    font-size: 0.95rem; /* "Workshop Dashboard" just fits beside the hide button in the 250px sidebar */
}

/* Hides the sidebar — desktop only, see MainLayout.razor.css. Sits in the same spot as
   MainLayout's .nav-show-btn, so the icon doesn't move between hidden and shown. */
.nav-hide-btn[b-wosposc6ch] {
    display: none;
    padding: 0.25rem 0.4rem;
    margin-right: 0.5rem;
    border: 0;
    border-radius: 0.375rem;
    background: none;
    color: rgba(255, 255, 255, 0.75);
    font-size: 1.5rem;
    line-height: 1;
}

.nav-hide-btn:hover[b-wosposc6ch] {
    color: #fff;
    background-color: rgba(255, 255, 255, 0.1);
}

/* Undo the nav-menu .bi sizing below for this icon-font glyph. */
.nav-hide-btn .bi[b-wosposc6ch] {
    width: auto;
    height: auto;
    margin: 0;
    top: 0;
}

.bi[b-wosposc6ch] {
    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-wosposc6ch] {
    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-wosposc6ch] {
    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-wosposc6ch] {
    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-wosposc6ch] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

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

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

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

.nav-item[b-wosposc6ch]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

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

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

/* Pins the theme switcher to the actual bottom of the sidebar (not just after
   the last nav item) — .sidebar is a flex column (see MainLayout.razor.css),
   so this fills all remaining space above it regardless of how many nav
   sections are above. */
.sidebar-footer[b-wosposc6ch] {
    margin-top: auto;
}

/* <ThemeSwitcher>'s dropdown renders with data-bs-display="static", which disables
   Popper's auto-flip entirely — it's plain CSS positioning, so with the trigger
   pinned to the bottom of the screen the menu needs to be forced upward, or it
   opens downward off the bottom of the viewport. The component's own "Direction"
   parameter does NOT control this (verified: it just renders as an inert HTML
   attribute) — this CSS override is the actual fix. */
.sidebar-footer[b-wosposc6ch]  .dropdown-menu {
    top: auto;
    bottom: 100%;
    margin-bottom: 0.25rem;
}

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

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

    .nav-hide-btn[b-wosposc6ch] {
        display: block;
    }

    .nav-scrollable[b-wosposc6ch] {
        /* 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/Home.razor.rz.scp.css */
.home-search[b-lkpada0s42] {
    max-width: 280px;
}

.home-tool[b-lkpada0s42] {
    color: inherit;
    transition: background-color 0.15s ease;
}

    .home-tool:hover[b-lkpada0s42] {
        background-color: var(--bs-tertiary-bg);
    }

.home-hero-icon[b-lkpada0s42] {
    font-size: 1.75rem;
    line-height: 1;
}
/* /Components/Pages/Quoting/WaitingQuote.razor.rz.scp.css */
/* Each customer card is one big link (see WaitingQuote.razor) — show it's clickable. The .card
   itself is rendered by Blazor.Bootstrap's <Card>, a child component, hence ::deep. */
.quote-card[b-z2p2r4s164]  .card {
    transition: border-color .15s, box-shadow .15s;
}

.quote-card:hover[b-z2p2r4s164]  .card,
.quote-card:focus-visible[b-z2p2r4s164]  .card {
    border-color: var(--bs-primary);
    box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .12);
}
/* /Components/Pages/Workshop/WorkshopNotifications.razor.rz.scp.css */
/* The three columns fill the screen under the header, and each list scrolls itself (via
   .kiosk-scroll, picked up by KioskLayout.razor's auto-scroll script) rather than the page.
   Every ancestor in the flex chain down to .kiosk-scroll needs min-height: 0 — flex items
   default to a content-based min-height, which would otherwise let a long list push its
   card (and the page) taller than the screen instead of scrolling inside it. */
.kiosk-page[b-vs5v5mm8sf],
.kiosk-columns[b-vs5v5mm8sf] {
    min-height: 0;
}

.kiosk-columns[b-vs5v5mm8sf]  .card,
.kiosk-columns[b-vs5v5mm8sf]  .card-body {
    min-height: 0;
}

/* Nobody can use a scrollbar on a wall-mounted TV — the lists auto-scroll instead. */
.kiosk-columns[b-vs5v5mm8sf]  .kiosk-scroll {
    scrollbar-width: none;
}

/* The first column's two cards (rule alerts, on hold) share its height equally. */
.kiosk-columns[b-vs5v5mm8sf]  .kiosk-half {
    flex: 1 1 0;
}
/* /Components/Pages/Workshop/WorkshopStatus.razor.rz.scp.css */
/* Wall-mounted monitor is read from across the room — scale the tiles well past the
   desktop-sized .stat-* defaults in app.css (on top of the kiosk-wide scale-up there). */
.stat-icon[b-wht0b3x4lf] {
    font-size: 3.5rem;
}

.stat-value[b-wht0b3x4lf] {
    font-size: 4rem;
}

.stat-label[b-wht0b3x4lf] {
    font-size: 1.25rem;
}

.turnaround-value[b-wht0b3x4lf] {
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
}
