/* _content/IHL.Crm.Web/Components/AccessDenied.razor.rz.scp.css */
/* Scoped, so nothing here can reach another page and theme.css - which belongs
   to another session - is left alone.

   The red is fixed rather than themed. A refusal has to look the same in the
   light theme and the dark one, and a theme variable somebody retunes later
   would quietly soften the one screen that is not supposed to soften. Text and
   panel colours still come from the theme so the page does not look pasted on. */

.denied[b-olxi2g0io9] {
    max-width: 44rem;
    margin: 1.5rem 0;
    border: 1px solid rgba(220, 53, 69, .45);
    border-radius: var(--ihl-radius-sm, .5rem);
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(220, 53, 69, .12);
}

/* The bar carries the code, and is the part that reads as "stop". */
.denied-bar[b-olxi2g0io9] {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .7rem 1rem;
    background: #b02a37;
    color: #fff;
}

.denied-code[b-olxi2g0io9] {
    font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
}

/* Pushed to the far end so it reads as a stamped-on file number, which is what
   it is - the primary key of the row that was just written. */
.denied-ref[b-olxi2g0io9] {
    margin-left: auto;
    font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
    font-size: .78rem;
    letter-spacing: .06em;
    padding: .15rem .5rem;
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: .25rem;
    white-space: nowrap;
}

.denied-body[b-olxi2g0io9] {
    padding: 1.1rem 1.1rem 1rem;
    background: var(--ihl-surface, #fff);
    color: var(--ihl-text, #101828);
}

.denied-title[b-olxi2g0io9] {
    font-size: 1.05rem;
    font-weight: 600;
    margin: 0 0 .6rem;
}

.denied-note[b-olxi2g0io9] {
    margin: 0 0 .5rem;
    font-size: .875rem;
    color: #b02a37;
    font-weight: 500;
}

.denied-help[b-olxi2g0io9] {
    margin: 0;
    font-size: .875rem;
    color: var(--ihl-text-soft, #475467);
}

/* Small screens: the reference must not shove the code off the edge, because
   the reference is the part worth reading out over the phone. */
@media (max-width: 30rem) {
    .denied-bar[b-olxi2g0io9] {
        flex-wrap: wrap;
        row-gap: .4rem;
    }

    .denied-ref[b-olxi2g0io9] {
        margin-left: 0;
    }
}
/* _content/IHL.Crm.Web/Components/AllocationBox.razor.rz.scp.css */
/* Where a receipt's money goes (30 Sep). Theme tokens only. */
.rc-box[b-1wv0mxs0y5] { border: 1px solid var(--ihl-line); border-radius: var(--ihl-radius-sm, 11px); padding: .6rem .75rem; }
.rc-line[b-1wv0mxs0y5] { display: grid; grid-template-columns: 1fr 9rem; gap: .5rem; align-items: center; padding: .2rem 0; font-size: .86rem; }
.rc-other[b-1wv0mxs0y5] { display: block; font-size: .72rem; color: var(--ihl-text-soft); }
.rc-sum[b-1wv0mxs0y5] {
    display: flex; justify-content: space-between; margin-top: .4rem; padding-top: .4rem;
    border-top: 1px dashed var(--ihl-line); font-size: .88rem; font-variant-numeric: tabular-nums;
}
@media (max-width: 575px) { .rc-line[b-1wv0mxs0y5] { grid-template-columns: 1fr 7rem; } }
/* _content/IHL.Crm.Web/Components/Layout/MainLayout.razor.rz.scp.css */
/* Layout styling lives in wwwroot/app.css so the whole app shares one set of
   tokens. This file is intentionally empty. */
/* _content/IHL.Crm.Web/Components/Layout/NavMenu.razor.rz.scp.css */
/* Navigation styling lives in wwwroot/app.css. This file is intentionally empty. */
/* _content/IHL.Crm.Web/Components/Layout/NotificationBell.razor.rz.scp.css */
/* The bell's drop-down. Scoped to this component, so nothing here can reach
   another page - and theme.css, which belongs to another session, is not
   touched. Every colour comes from the theme's own variables with a plain
   fallback, so it follows Frosted Light and Midnight Glass alike. */

.bell-wrap[b-oonqzicoyv] {
    position: relative;
    display: inline-block;
}

/* There is no transparent "catch" sheet here, and that is deliberate. The
   header carries backdrop-filter, which makes it the containing block for any
   position:fixed child - so a full-screen sheet would really be 58px tall and
   clicks below the header would miss it entirely. Closing is handled by a
   document listener in wwwroot/dropdown.js instead. */

.bell-panel[b-oonqzicoyv] {
    position: absolute;
    top: calc(100% + .5rem);
    right: 0;
    z-index: 1050;
    width: min(23rem, calc(100vw - 2rem));
    background: var(--ihl-surface, #ffffff);
    color: var(--ihl-text, #101828);
    border: 1px solid var(--ihl-glass-border, rgba(0,0,0,.12));
    border-radius: var(--ihl-radius-sm, .5rem);
    box-shadow: 0 18px 40px rgba(6, 10, 20, .28);
    overflow: hidden;
    text-align: left;
}

.bell-head[b-oonqzicoyv],
.bell-foot[b-oonqzicoyv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .55rem .8rem;
}

.bell-head[b-oonqzicoyv] { border-bottom: 1px solid var(--ihl-glass-border, rgba(0,0,0,.1)); }
.bell-foot[b-oonqzicoyv] { border-top:    1px solid var(--ihl-glass-border, rgba(0,0,0,.1)); }

/* Capped so a long list scrolls inside the panel instead of running off the
   bottom of the screen. */
.bell-list[b-oonqzicoyv] {
    max-height: 22rem;
    overflow-y: auto;
}

.bell-item[b-oonqzicoyv] {
    padding: .6rem .8rem;
    border-bottom: 1px solid var(--ihl-glass-border, rgba(0,0,0,.07));
}

.bell-item:last-child[b-oonqzicoyv] { border-bottom: 0; }

.bell-new[b-oonqzicoyv] {
    background: var(--ihl-glass-hover, rgba(79, 70, 229, .06));
    border-left: 3px solid var(--ihl-primary, #4f46e5);
    padding-left: .55rem;
}

.bell-body[b-oonqzicoyv] {
    /* Two lines is enough to know what it is; the full text is on the page. */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.bell-when[b-oonqzicoyv] {
    font-size: .7rem;
    color: var(--ihl-muted, #8a94a6);
    white-space: nowrap;
}

.bell-empty[b-oonqzicoyv] { padding: 1.2rem .8rem; }

.bell-x[b-oonqzicoyv] {
    background: none;
    border: 0;
    padding: .15rem;
    line-height: 0;
    cursor: pointer;
    border-radius: .3rem;
    color: var(--ihl-muted, #8a94a6);
    opacity: .75;
    transition: opacity .15s ease, color .15s ease;
}

.bell-x:hover[b-oonqzicoyv] { opacity: 1; color: var(--ihl-text, #101828); }
.bell-x:focus-visible[b-oonqzicoyv] { outline: 2px solid var(--ihl-primary, #4f46e5); outline-offset: 1px; opacity: 1; }
/* _content/IHL.Crm.Web/Components/Pages/AdvancePending.razor.rz.scp.css */
/* Advance Pending (30 Sep): the whole row carries a light tint, like the old
   system's Hold PO list, so an unpaid order is seen while scrolling. */
.adv-table tr.adv-red td[b-r4k2cd4huc]    { background: var(--ihl-red-bg); }
.adv-table tr.adv-orange td[b-r4k2cd4huc] { background: var(--ihl-amber-bg); }
.adv-overdue[b-r4k2cd4huc] { color: var(--ihl-red); }
.adv-sw[b-r4k2cd4huc] {
    display: inline-block; width: 14px; height: 14px; border-radius: 3px; vertical-align: -2px; margin-right: .3rem;
    border: 1px solid var(--ihl-line);
}
.adv-sw.adv-red[b-r4k2cd4huc]    { background: var(--ihl-red-bg); }
.adv-sw.adv-orange[b-r4k2cd4huc] { background: var(--ihl-amber-bg); }
/* _content/IHL.Crm.Web/Components/Pages/Categories.razor.rz.scp.css */
/* The grey "an order gets" line under each pair.

   It is a row of its own rather than a line inside the first cell, because it
   has to run the full width of the table - five columns of answers do not fit
   under the dose name. Its top border is taken off so that it reads as part of
   the row above it and not as a row in its own right. */

.ihl-eff > td[b-vmj7yq2u6h] {
    border-top: 0;
    padding-top: 0;
    padding-bottom: .55rem;
}

/* Rate boxes are narrow, so the figure sits to the right where the eye can
   compare a column of them without reading each one. */
.ihl-pairs input.form-control[b-vmj7yq2u6h] {
    text-align: right;
}

.ihl-pairs th[b-vmj7yq2u6h] {
    white-space: nowrap;
}
/* _content/IHL.Crm.Web/Components/Pages/Notifications.razor.rz.scp.css */
/* Scoped to this page only.

   Bootstrap's .bg-light was being used to mark an unread row. On the dark
   theme that paints a white block with pale text on it - unreadable, and the
   one row that most needed reading. This uses the theme's own variables, so
   the highlight follows whichever theme is on. */

.notif-unread[b-9wprhid9i7] {
    background: var(--ihl-glass-hover, rgba(79, 70, 229, .06));
    border-left: 3px solid var(--ihl-primary, #4f46e5);
    padding-left: .65rem !important;
    border-radius: .25rem;
}
/* _content/IHL.Crm.Web/Components/Pages/PrintParts.razor.rz.scp.css */
/* Printing parts pending - the tracking view (30 Sep, "Print Tracking v2").
   Colours come from the theme tokens (theme.css), so light and dark both work. */

/* The counts at the top: quick filters, one press each. */
.pp-counts[b-7up5pulp1l] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
    gap: .5rem;
}
.pp-count[b-7up5pulp1l] {
    display: grid;
    gap: .1rem;
    text-align: left;
    padding: .55rem .75rem;
    border-radius: var(--ihl-radius-sm, 11px);
    border: 1px solid var(--ihl-glass-border);
    background: var(--ihl-glass-strong);
    color: var(--ihl-text);
}
.pp-count b[b-7up5pulp1l] { font-size: 1.35rem; font-variant-numeric: tabular-nums; line-height: 1.2; }
.pp-count span[b-7up5pulp1l] { font-size: .78rem; color: var(--ihl-text-soft); }
.pp-count:hover[b-7up5pulp1l] { background: var(--ihl-glass-hover); }
.pp-count.on[b-7up5pulp1l] { border-color: var(--ihl-primary); box-shadow: inset 0 0 0 1px var(--ihl-primary); background: var(--ihl-primary-soft); }
.pp-count.alarm b[b-7up5pulp1l] { color: var(--ihl-red); }

.pp-search[b-7up5pulp1l] { flex: 1 1 16rem; min-width: 0; }
.pp-pick[b-7up5pulp1l] { width: auto; max-width: 14rem; }

/* One order. */
.pp-order[b-7up5pulp1l] { overflow: hidden; }
.pp-ohead[b-7up5pulp1l] {
    display: flex; flex-wrap: wrap; gap: .5rem 1rem;
    justify-content: space-between; align-items: center;
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--ihl-line);
}
.pp-otitle[b-7up5pulp1l] { min-width: 0; }
.pp-track[b-7up5pulp1l] { width: 110px; height: 6px; border-radius: 3px; background: var(--ihl-line); overflow: hidden; }
.pp-track i[b-7up5pulp1l] { display: block; height: 100%; background: var(--ihl-green); }
.pp-ofoot[b-7up5pulp1l] { padding: .45rem 1rem; font-size: .8rem; color: var(--ihl-text-soft); border-top: 1px solid var(--ihl-line); }
.pp-ofoot.ready[b-7up5pulp1l] { color: var(--ihl-green); font-weight: 600; }

/* A part and its four steps, in columns that line up down the card. */
.pp-grid[b-7up5pulp1l] {
    display: grid;
    grid-template-columns: minmax(170px, 1.4fr) repeat(4, minmax(92px, 1fr)) minmax(130px, auto);
    gap: .4rem;
    align-items: start;
    padding: .6rem 1rem;
    min-width: 760px;
}
.pp-head[b-7up5pulp1l] {
    font-size: .7rem; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ihl-muted); font-weight: 600; padding-block: .4rem;
}
.pp-row[b-7up5pulp1l] { border-top: 1px solid var(--ihl-line); }
.pp-under[b-7up5pulp1l] { padding: .5rem 1rem .75rem; border-top: 1px dashed var(--ihl-line); background: var(--ihl-hover-tint); min-width: 760px; }

.pp-step[b-7up5pulp1l] {
    position: relative; text-align: center; font-size: .78rem;
    color: var(--ihl-muted); padding-top: 1.35rem;
    display: flex; flex-direction: column; align-items: center; gap: .05rem;
}
.pp-step[b-7up5pulp1l]::before {
    content: ""; position: absolute; top: .15rem; left: 50%;
    width: 14px; height: 14px; margin-left: -7px; border-radius: 50%;
    border: 2px solid var(--ihl-line); background: var(--ihl-glass-strong);
}
.pp-step.done[b-7up5pulp1l] { color: var(--ihl-text); }
.pp-step.done[b-7up5pulp1l]::before { background: var(--ihl-green); border-color: var(--ihl-green); }
.pp-step.now[b-7up5pulp1l]::before { background: #f4b740; border-color: #f4b740; }
.pp-step.late[b-7up5pulp1l]::before { background: var(--ihl-red); border-color: var(--ihl-red); }
.pp-step.na[b-7up5pulp1l] { opacity: .4; }
.pp-d[b-7up5pulp1l] { font-variant-numeric: tabular-nums; font-size: .74rem; }
.pp-by[b-7up5pulp1l] { font-size: .7rem; color: var(--ihl-muted); }
.pp-wait[b-7up5pulp1l] {
    margin-top: .15rem; font-size: .7rem; font-weight: 600; border-radius: 4px; padding: 0 .35rem;
    background: var(--ihl-amber-bg); color: var(--ihl-text);
}
.pp-step.late .pp-wait[b-7up5pulp1l] { background: var(--ihl-red-bg); color: var(--ihl-red); }
.pp-mini[b-7up5pulp1l] { width: 70%; height: 5px; border-radius: 3px; background: var(--ihl-line); overflow: hidden; margin-top: .15rem; }
.pp-mini i[b-7up5pulp1l] { display: block; height: 100%; background: #f4b740; }

/* By printer: one card each, whom to chase and with what. */
.pp-printers[b-7up5pulp1l] { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: .75rem; }
.pp-pcard[b-7up5pulp1l] { min-width: 0; }

@media (max-width: 520px) {
    .pp-printers[b-7up5pulp1l] { grid-template-columns: 1fr; }
    .pp-pick[b-7up5pulp1l] { max-width: none; flex: 1 1 45%; }
}
/* _content/IHL.Crm.Web/Components/Pages/Quotations.razor.rz.scp.css */
/* Quotations (30 Sep). Colours come from the theme tokens (theme.css), so
   light and dark both work. */

.qt-tabs[b-pzz4pumtrk] { display: flex; flex-wrap: wrap; gap: .4rem; }
.qt-count[b-pzz4pumtrk] { font-variant-numeric: tabular-nums; opacity: .8; margin-left: .25rem; }
.qt-search[b-pzz4pumtrk] { max-width: 26rem; }
.qt-mono[b-pzz4pumtrk] { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .9rem; }
.qt-row[b-pzz4pumtrk] { cursor: pointer; }
.qt-lines td[b-pzz4pumtrk], .qt-lines th[b-pzz4pumtrk] { vertical-align: top; }
.qt-warn[b-pzz4pumtrk] { color: #b7791f; }
.qt-reason[b-pzz4pumtrk] { max-width: 30rem; }
.qt-note[b-pzz4pumtrk] { border-left: 3px solid var(--ihl-line); padding: .15rem 0 .15rem .6rem; margin-bottom: .45rem; }
.qt-pre[b-pzz4pumtrk] { white-space: pre-wrap; }

.qt-pill[b-pzz4pumtrk] {
    display: inline-block; font-size: .66rem; font-weight: 700; letter-spacing: .02em;
    padding: .08rem .5rem; border-radius: 20px; border: 1px solid; white-space: nowrap; text-decoration: none;
}
.qt-discarded[b-pzz4pumtrk] { color: var(--ihl-text-soft); border-color: var(--ihl-line); }
.qt-po[b-pzz4pumtrk]        { color: var(--ihl-green); border-color: var(--ihl-green); }
.qt-shared[b-pzz4pumtrk]    { color: var(--ihl-text-soft); border-color: var(--ihl-line); font-weight: 600; }
/* _content/IHL.Crm.Web/Components/Pages/Receipts.razor.rz.scp.css */
/* Bank Receipts (30 Sep). Colours come from the theme tokens (theme.css), so
   light and dark both work. */

.rc-tabs[b-3pamkvmw8j] { display: flex; flex-wrap: wrap; gap: .4rem; }
.rc-count[b-3pamkvmw8j] { font-variant-numeric: tabular-nums; opacity: .8; margin-left: .25rem; }
.rc-search[b-3pamkvmw8j] { max-width: 26rem; }

.rc-table td[b-3pamkvmw8j], .rc-table th[b-3pamkvmw8j] { vertical-align: top; }
.rc-mono[b-3pamkvmw8j] { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .85rem; }
.rc-unalloc[b-3pamkvmw8j] { color: #b7791f; font-size: .78rem; font-weight: 600; }
.rc-alloc[b-3pamkvmw8j] { white-space: nowrap; }
.rc-other[b-3pamkvmw8j] { display: block; font-size: .72rem; color: var(--ihl-text-soft); white-space: normal; }
.rc-remove[b-3pamkvmw8j] { font-size: .72rem; }
.rc-acts[b-3pamkvmw8j] { display: flex; flex-wrap: wrap; gap: .3rem; }

.rc-pill[b-3pamkvmw8j] {
    display: inline-block; font-size: .66rem; font-weight: 700; letter-spacing: .02em;
    padding: .08rem .5rem; border-radius: 20px; border: 1px solid; white-space: nowrap;
}
.rc-unverified[b-3pamkvmw8j]  { background: var(--ihl-amber-bg); border-color: var(--ihl-amber-line); }
.rc-verified[b-3pamkvmw8j]    { color: var(--ihl-green); border-color: var(--ihl-green); }
.rc-not_found[b-3pamkvmw8j], .rc-wrong_party[b-3pamkvmw8j], .rc-hold[b-3pamkvmw8j] { color: var(--ihl-red); background: var(--ihl-red-bg); border-color: var(--ihl-red-line); }
.rc-discarded[b-3pamkvmw8j]   { color: var(--ihl-text-soft); border-color: var(--ihl-line); }
