/* /Pages/CFDocLkup/DocumentResult.cshtml.rz.scp.css */
/* Match legacy outer spacing — legacy had container-fluid + page-wrapper + wrapper-content
   providing ~40px from viewport to ibox; modern wrapper-content only provides ~10px */
.ibox[b-78aihj54n7] {
    margin-left: 30px;
    margin-right: 30px;
}

/* Match legacy Inspinia font-bold class (font-weight: 600) */
.font-bold[b-78aihj54n7] {
    font-weight: 600;
}

/* Match legacy alternating row color — light blue (#f3fafe) instead of Kendo default grey */
[b-78aihj54n7] #gridDocumentResults .k-table-alt-row {
    background-color: #f3fafe !important;
}

/* Match legacy grid link color — darkened from BS3 #337ab7 to #2e6da4 (BS3 hover blue)
   to meet WCAG AA 4.5:1 contrast ratio against the #f3fafe alt-row background */
[b-78aihj54n7] #gridDocumentResults a {
    color: #2e6da4;
}

/* Match legacy header centering — legacy seims.css centered all grid headers. */
[b-78aihj54n7] #gridDocumentResults .k-grid-header th {
    text-align: center !important;
}

/* Sort icon styling (color/weight only — layout is in external DocumentResult.css). */
[b-78aihj54n7] #gridDocumentResults .k-grid-header th .k-link .k-sort-icon,
[b-78aihj54n7] #gridDocumentResults .k-table-thead th .k-link .k-sort-icon {
    color: #000;
    font-weight: bold;
}
/* /Pages/CFDocLkup/DocumentSearchByType.cshtml.rz.scp.css */
/* Match legacy outer spacing — legacy had container-fluid + page-wrapper + wrapper-content
   providing ~40px from viewport to ibox; modern wrapper-content only provides ~10px */
.ibox[b-7qgmnsl9h8] {
    margin-left: 30px;
    margin-right: 30px;
}

/* Fluid max-width centering (VoterTools pattern) on the shared wrapper.
   Children left-align within this container so the paragraph and input controls
   share a common left edge — paragraph extends further right (wider). */
#divMain[b-7qgmnsl9h8] {
    max-width: 800px;
    width: 100%;
    margin: 0 auto;
    padding: 0 15px;
}

@media (min-width: 768px) {
    #divMain[b-7qgmnsl9h8] {
        padding: 0;
    }
}

/* Input controls centered within #divMain, narrower than the paragraph */
#InputControls[b-7qgmnsl9h8] {
    max-width: 600px;
    margin: 0 auto;
}

/* Constrain year dropdown to natural width */
#divYear[b-7qgmnsl9h8] {
    max-width: 120px;
}

#divDocList[b-7qgmnsl9h8] {
    height: 200px;
    overflow-y: scroll;
    width: 100%;
}

#tblDocument[b-7qgmnsl9h8] {
    width: 100%;
}

#tblDocument tr:hover[b-7qgmnsl9h8] {
    background-color: lightblue;
}

.tdCheck[b-7qgmnsl9h8] {
    width: 10%;
}

.tdLabel[b-7qgmnsl9h8] {
    width: 90%;
}

/* Accessible focus indicator for the Report Year select control.
   Use outline (not box-shadow) and a dark blue color to ensure at least 3:1
   contrast against the white page background. Keep this rule scoped to the
   page-specific stylesheet so it doesn't affect other selects site-wide. */
#YearList:focus[b-7qgmnsl9h8] {
    outline: 3px solid #155a8a; /* dark blue with sufficient contrast */
    outline-offset: 2px;
}
/* /Pages/CFOrgLkup/DocumentSearchByEntity.cshtml.rz.scp.css */
/* Ensure form control borders meet WCAG 3:1 contrast ratio against white */
[b-a74ullft7w] .form-control,
[b-a74ullft7w] .form-check-input {
    border-color: #909090;
}
/* /Pages/CFTxnLkup/AdvancedSearch.cshtml.rz.scp.css */
/* ── Org / Individual Field Visibility ───────────────────────────────
   Same pattern as Basic Search — the form's data-is-org attribute is
   updated by the page JS on radio change; CSS owns show/hide. */
[b-burfytjqly] form[data-is-org="true"] .individual-only {
    display: none;
}

[b-burfytjqly] form[data-is-org="false"] .org-only {
    display: none;
}

/* ── Party / Office Section Disabling ────────────────────────────────
   When the chosen committee-type set rules out party / office filters,
   we visually dim the section in addition to setting `disabled` on the
   inputs server-side. Pointer-events:none prevents click-through to
   the now-irrelevant collapse button. */
[b-burfytjqly] form[data-party-allowed="false"] #sectionParty,
[b-burfytjqly] form[data-office-allowed="false"] #sectionOffice {
    opacity: 0.5;
    pointer-events: none;
}

/* ── Form Control Borders ─────────────────────────────────────────────
   Match WCAG 3:1 contrast ratio against white.
   .k-numerictextbox is the outer wrapper Kendo renders for NumericTextBox;
   its border is set by the Kendo theme's .k-input-solid rule and requires
   !important to override (defect 644). */
[b-burfytjqly] .form-control,
[b-burfytjqly] .form-select,
[b-burfytjqly] .form-check-input {
    border-color: #909090;
}

[b-burfytjqly] .k-numerictextbox {
    border-color: #909090 !important;
}

/* Amount fields use a static "$" prefix outside the typed value. */
[b-burfytjqly] .amount-input-group {
    flex-wrap: nowrap;
}

[b-burfytjqly] .amount-prefix {
    border-color: #909090;
    background-color: #fff;
    color: #212529;
}

[b-burfytjqly] .amount-input-group .form-control {
    border-color: #909090;
}

/* ── Focus indicators for select boxes and listbox (WCAG 1.4.11 — defect 665) ──
   Ensures a visible 3:1+ contrast focus ring appears on the committee listbox
   and state dropdown when receiving keyboard focus. */
[b-burfytjqly] .form-select:focus,
[b-burfytjqly] .adv-comm-listbox:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
    outline: none;
    border-color: #258cfb;
}

[b-burfytjqly] .amount-input-group:focus-within {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
    border-radius: .375rem;
}

[b-burfytjqly] .amount-input-group:focus-within .input-group-text,
[b-burfytjqly] .amount-input-group:focus-within .form-control {
    border-color: #258cfb;
}

/* ── Focus indicators for Kendo widget wrappers (WCAG 1.4.11) ────────
   Kendo wraps inner <input> elements in container divs that may clip the
   native focus ring. :focus-within on the wrapper ensures a visible 3:1+
   contrast indicator appears around the full control boundary. */
[b-burfytjqly] .k-numerictextbox:focus-within {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
    border-radius: 4px;
}

/* ── Search container width ───────────────────────────────────────────
   max-width: 100% lets the expansion cards fill the outer ibox-content
   on all viewport widths, matching the legacy layout where rows sat
   directly inside ibox-content without any max-width cap.
   padding-x: 0 cancels the Bootstrap .container built-in gutter so the
   outermost column cards align with the ibox-content inner boundary. */
[b-burfytjqly] .txn-search-container {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

/* ── Type-Section header (collapsible button) ─────────────────────── */
[b-burfytjqly] .adv-type-section {
    border: 1px solid #d0d4d8;
    border-radius: 4px;
    background-color: #fff;
    /* Suppress the Inspinia .ibox box-shadow — these cards are already
       visually separated by their border; a shadow looks out of place. */
    box-shadow: none;
    /* height: 100% fills the Bootstrap column so cards in the same flex-row
       are equal height. Because .adv-type-list has a fixed 200px height all
       panels are naturally the same size and no max-height cap is needed. */
    display: flex;
    flex-direction: column;
    height: 100%;
}

[b-burfytjqly] .adv-type-section .ibox-title {
    padding: 0;
    /* Prevent an enlarged font from pushing the header taller than its
       natural .adv-type-toggle height (padding + line-height). */
    overflow: hidden;
}

[b-burfytjqly] .adv-type-toggle {
    background: none;
    border: 0;
    color: inherit;
    width: 100%;
    text-align: left;
    padding: 8px 12px;
    font-weight: 700;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    /* Tighter line-height keeps the button height stable. */
    line-height: 1.2;
}

/* ── Toggle title: fixed font-size so every section header is identical ──
   Using a single value instead of a container-query clamp guarantees all
   headers (col-md-4, col-md-6, and full-width cards) render at the same
   size regardless of the card's rendered width. */
[b-burfytjqly] .adv-type-toggle-text {
    font-size: 1.1rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1 1 auto;
    min-width: 0;
}

[b-burfytjqly] .adv-type-toggle-icon {
    flex: 0 0 auto;
    margin-left: .5rem;
    transition: transform 0.15s ease-out;
}

[b-burfytjqly] .adv-type-toggle:focus-visible {
    outline: 2px solid #fff;
    outline-offset: -3px;
}

[b-burfytjqly] .adv-type-toggle[aria-expanded="false"] + .adv-type-panel,
[b-burfytjqly] .adv-type-section .adv-type-toggle[aria-expanded="false"] ~ .ibox-content {
    display: none;
}

/* When collapsed, let the section shrink to just the header height instead of
   stretching to fill the Bootstrap column (which left an empty bordered box). */
[b-burfytjqly] .adv-type-section:has(.adv-type-toggle[aria-expanded="false"]) {
    height: auto;
}

[b-burfytjqly] .adv-type-toggle[aria-expanded="false"] .adv-type-toggle-icon {
    transform: rotate(180deg);
}

[b-burfytjqly] .ibox-content {
    padding: 12px 16px;
}


/* ── Type-Section "All" + checkbox grid ─────────────────────────────
   Individual checkboxes shown in a responsive grid so wide lists wrap
   instead of forcing horizontal scroll. */
[b-burfytjqly] .adv-type-all-label {
    font-weight: 700;
    margin-bottom: 6px;
}

[b-burfytjqly] .adv-type-list {
    /* Visible border matching the legacy divCBList.form-control outline so
       individual checkboxes appear boxed while the "All" checkbox (which
       sits above this fieldset in ibox-content) remains outside the box. */
    border: 1px solid #b0b8c0;
    border-radius: 4px;
    padding: 6px 8px;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 4px 16px;
    /* Match legacy .divCBList: fixed 200px scrollable area. The "All" checkbox
       above this list remains visible when the user scrolls. */
    height: 200px;
    overflow-y: auto;
    width: 100%;
    min-width: 0;
    min-inline-size: 0;
    max-width: 100%;
    box-sizing: border-box;
}

/* Receipt and Expenditure cards are col-md-6 wide; their checkbox lists must
   show exactly one item per row to match the legacy table-row layout. */
[b-burfytjqly] #sectionReceipt .adv-type-list,
[b-burfytjqly] #sectionExpenditure .adv-type-list {
    grid-template-columns: 1fr;
}

/* Committee, Party, and Office lists should also remain single-column at all
   viewport sizes so they match the receipt and expenditure sections. */
[b-burfytjqly] #sectionCommittee .adv-type-list,
[b-burfytjqly] #sectionParty .adv-type-list,
[b-burfytjqly] #sectionOffice .adv-type-list {
    grid-template-columns: 1fr;
}

[b-burfytjqly] .adv-type-item {
    margin-bottom: 0;
    position: relative;
    cursor: pointer;
}

/* Match legacy .tblCBList tr:hover behavior: highlight only the row that
   the pointer is currently hovering over. */
[b-burfytjqly] .adv-type-list .adv-type-item:hover {
    background-color: lightblue;
}

/* Make the entire checkbox row clickable — the label's ::after pseudo-element
   stretches to fill the parent row, so clicking anywhere in the row toggles
   the checkbox via the label's for-attribute linkage. */

[b-burfytjqly] .adv-type-item .form-check-label::after {
    content: '';
    position: absolute;
    inset: 0;
}

/* ── Committee List Box ─────────────────────────────────────────── */
[b-burfytjqly] .adv-comm-listbox-wrap {
    width: 100%;
    overflow-x: auto;
}

[b-burfytjqly] .adv-comm-listbox {
    width: max-content;
    min-width: 100%;
    min-height: 160px;
    font-family: inherit;
}

/* Custom iOS surrogate list — hidden everywhere except iOS touch (toggled below). */
[b-burfytjqly] .adv-comm-custom-list {
    display: none;
}

/* iOS Safari/Chrome render every <select> (including multiple) as a collapsed
   tap-to-open picker that ignores size= and can't show options inline. So on
   iOS we hide the native control and show a custom multi-select listbox instead,
   which the page JS keeps mirrored with the native <select> (source of truth).

   Gating (shared constraint — kept in sync with AdvancedSearch.cshtml.js):
   `-webkit-touch-callout` is also recognized by *desktop* macOS Safari, so the
   @supports test alone would wrongly route desktop Safari to the surrogate list.
   Nesting it inside `@media (hover: none) and (pointer: coarse)` restricts it to
   touch devices, i.e. iOS Safari/Chrome, while leaving macOS Safari (and all
   other desktops) on the native <select>. The JS never re-detects the platform;
   it reads whichever control this CSS makes visible. */
@media (hover: none) and (pointer: coarse) {
    @supports (-webkit-touch-callout: none) {
        [b-burfytjqly] .adv-comm-listbox {
            display: none;
        }

        [b-burfytjqly] .adv-comm-custom-list {
            display: block;
            list-style: none;
            margin: 0;
            padding: 0;
            min-height: 160px;
            max-height: 280px;
            overflow-y: auto;
            border: 1px solid #909090;
            border-radius: .375rem;
            background-color: #fff;
            font-family: inherit;
            -webkit-overflow-scrolling: touch;
        }

        /* Visible keyboard-focus ring on the listbox container. */
        [b-burfytjqly] .adv-comm-custom-list:focus {
            outline: 2px solid #0d6efd;
            outline-offset: -2px;
        }

        [b-burfytjqly] .adv-comm-custom-item {
            padding: .5rem .75rem;
            border-bottom: 1px solid #e3e3e3;
            cursor: pointer;
            -webkit-tap-highlight-color: transparent;
            user-select: none;
        }

        [b-burfytjqly] .adv-comm-custom-item:last-child {
            border-bottom: 0;
        }

        /* Keyboard active descendant (aria-activedescendant target). */
        [b-burfytjqly] .adv-comm-custom-item.active {
            box-shadow: inset 0 0 0 2px #0d6efd;
        }

        [b-burfytjqly] .adv-comm-custom-item.selected {
            background-color: #0d6efd;
            color: #fff;
        }
    }
}

[b-burfytjqly] .adv-comm-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    width: 100%;
    min-width: 0;
}

[b-burfytjqly] .adv-comm-actions > * {
    min-width: 0;
    max-width: 100%;
}

/* ── Free-text locality / Zip textareas ───────────────────────── */
[b-burfytjqly] .adv-locality-list,
[b-burfytjqly] .adv-zip-list {
    width: 100%;
    resize: vertical;
}

/* ── Transaction Detail — stacked label-above-input layout ────────
   Matches the legacy col-md-4 stacked form approach. */

/* Bold field labels throughout Transaction Detail */
[b-burfytjqly] .adv-field-label {
    font-weight: 600;
}

/* ── Sounds Like checkbox — positioned bottom-right below the input field
   (WCAG 2.4.3 — defect 663). DOM order is label → input → checkbox so
   tab order matches the visual reading direction (top-down, left-right). */
[b-burfytjqly] .adv-sounds-like-below {
    display: flex;
    justify-content: flex-end;
    margin-top: 4px;
    margin-bottom: 0;
}

[b-burfytjqly] .adv-is-org-fieldset {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

[b-burfytjqly] .adv-is-org-fieldset > legend {
    margin: 0 8px 0 0;
    width: auto;
    white-space: nowrap;
    font-size: inherit;
    padding: 0;
}

[b-burfytjqly] .adv-detail-is-org-row .form-check {
    transform: translateY(2px);
}


/* Paired fields (Date From/To, Amount From/To) controls must
   fill their containers so both inputs are the same width. */
[b-burfytjqly] .adv-detail-date-range {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 1rem;
    align-items: flex-start;
}

[b-burfytjqly] .adv-detail-date-field {
    flex: 1 1 0;
    min-width: 0;
    max-width: 100%;
    display: flex;
    flex-direction: column;
}

[b-burfytjqly] .adv-detail-date-field .date-input-wrap {
    position: relative;
    width: 100%;
}

[b-burfytjqly] .uses-flatpickr .flatpickr-alt-input,
[b-burfytjqly] .uses-flatpickr input[data-date-field="true"] {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    font-size: 0.875rem;
    padding-right: 2.5rem;
}

[b-burfytjqly] .date-picker-trigger {
    position: absolute;
    top: 50%;
    right: 0.375rem;
    width: 1.75rem;
    height: 1.75rem;
    transform: translateY(-50%);
    border: 0;
    border-radius: 0.25rem;
    background-color: transparent;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236c757d'%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-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1.1rem 1.1rem;
    cursor: pointer;
}

[b-burfytjqly] .date-picker-trigger:focus-visible {
    outline: 2px solid #0d6efd;
    outline-offset: 1px;
}

[b-burfytjqly] .uses-flatpickr .flatpickr-source-input {
    display: none !important;
}

[b-burfytjqly] .uses-flatpickr .date-placeholder {
    display: none !important;
}

[b-burfytjqly] .uses-flatpickr input[data-date-field="true"]::placeholder,
[b-burfytjqly] .uses-flatpickr input[data-date-field="true"]:focus::placeholder {
    color: #6c757d;
    opacity: 1;
}

[b-burfytjqly] .flatpickr-reset-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem 0.75rem;
    border-top: 1px solid #dee2e6;
    background-color: #fff;
}

[b-burfytjqly] .flatpickr-reset-action {
    border: 1px solid #0d6efd;
    background-color: #0d6efd;
    color: #fff;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25;
    padding: 0.25rem 0.5rem;
    cursor: pointer;
}

[b-burfytjqly] .flatpickr-reset-action:hover,
[b-burfytjqly] .flatpickr-reset-action:focus-visible {
    background-color: #0b5ed7;
    border-color: #0a58ca;
    color: #fff;
}

@media (hover: none) and (pointer: coarse) {
  @supports (-webkit-touch-callout: none) {
    [b-burfytjqly] .cftxn-flatpickr-calendar {
        transform: scale(0.92);
        transform-origin: top center;
    }

    [b-burfytjqly] .cftxn-flatpickr-calendar .flatpickr-months {
        padding-top: 0.125rem;
    }

    [b-burfytjqly] .cftxn-flatpickr-calendar .flatpickr-month {
        height: 2.1rem;
    }

    [b-burfytjqly] .cftxn-flatpickr-calendar .flatpickr-current-month {
        padding-top: 0.15rem;
    }

    [b-burfytjqly] .cftxn-flatpickr-calendar .flatpickr-weekdays {
        height: 1.75rem;
    }

    [b-burfytjqly] .cftxn-flatpickr-calendar .flatpickr-weekday,
    [b-burfytjqly] .cftxn-flatpickr-calendar .flatpickr-day {
        font-size: 0.8rem;
    }

    [b-burfytjqly] .cftxn-flatpickr-calendar .flatpickr-day {
        height: 1.9rem;
        line-height: 1.9rem;
        max-width: 1.9rem;
    }

    [b-burfytjqly] .cftxn-flatpickr-calendar .flatpickr-reset-footer {
        padding-top: 0.375rem;
        padding-bottom: 0.5rem;
    }

    [b-burfytjqly] .cftxn-flatpickr-calendar .flatpickr-reset-action {
        font-size: 0.8rem;
        padding: 0.2rem 0.4rem;
    }
  }
}

[b-burfytjqly] .adv-paired-field .k-dateinput,
[b-burfytjqly] .adv-paired-field .amount-input-group {
    width: 100%;
}

[b-burfytjqly] .adv-detail-date-field .form-control[type="date"] {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-inline-size: 0;
    box-sizing: border-box;
    padding-left: .375rem;
    padding-right: .375rem;
    -webkit-appearance: auto;
    appearance: auto;
}

[b-burfytjqly] .adv-detail-date-field .form-control[type="date"]::-webkit-calendar-picker-indicator {
    display: block;
}

[b-burfytjqly] .adv-paired-field .form-control[type="date"] {
    -webkit-appearance: auto;
    appearance: auto;
}

[b-burfytjqly] .adv-paired-field .form-control[type="date"]::-webkit-calendar-picker-indicator {
    display: block;
}

/* Overlay placeholder is hidden by default; iOS Safari rules below reveal it.
   nowrap keeps the fixed MM/DD/YYYY value on one line so it never wraps and
   gets vertically clipped inside the height-constrained input. */
[b-burfytjqly] .date-placeholder {
    display: none;
    white-space: nowrap;
}

/* ── iOS Safari date-field enhancements ──────────────────────────────
   iOS Safari ignores placeholder= and renders no calendar picker icon on
   native date inputs. `-webkit-touch-callout: none` is recognized by WebKit —
   but that includes DESKTOP macOS Safari, which must NOT receive these mobile
   overrides (appearance:none + transparent native text). So the @supports
   feature query is nested inside a coarse-pointer / no-hover media guard:
   together they match iOS touch Safari only, excluding desktop Safari. This
   mirrors the committee-list surrogate gating above. The overlay covers the
   input's native locale-formatted text so the displayed value is always
   MM/DD/YYYY (set by _dateFields.js). */
@media (hover: none) and (pointer: coarse) {
  @supports (-webkit-touch-callout: none) {
    [b-burfytjqly] .adv-detail-date-field .form-control[type="date"] {
        /* Force a normal bordered box on iOS Safari, which otherwise discards
           the .form-control border and renders the native control borderless
           (iOS Chrome honors the border with appearance:auto, Safari does not). */
        -webkit-appearance: none;
        appearance: none;
        padding-right: 2.25rem;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236c757d'%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-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right .625rem center;
        background-size: 1.1rem 1.1rem;
        /* Hide the browser's own locale-formatted value text; the overlay
           below always shows MM/DD/YYYY so the two don't compete.
           Accessibility: this only affects the visual paint. The .date-placeholder
           overlay is aria-hidden="true", so assistive tech ignores it and reads
           the underlying native input's real (ISO) date value instead — the
           transparent colour is intentional and must not be "fixed" to a visible
           colour, or the overlay's MM/DD/YYYY text would be shown on top of it. */
        color: transparent;
    }

    [b-burfytjqly] .adv-detail-date-field .date-input-wrap .date-placeholder {
        display: flex;
        align-items: center;
        position: absolute;
        left: 1px;
        right: 2rem;
        top: 1px;
        bottom: 1px;
        padding-left: .375rem;
        /* Placeholder colour when the field is empty. */
        color: #6c757d;
        background-color: #fff;
        pointer-events: none;
        /* Match the input's rounded corners so the square overlay no longer
           paints over the curved left border (which made it look detached). */
        border-top-left-radius: .375rem;
        border-bottom-left-radius: .375rem;
    }

    /* When a value is selected show the overlay in input-text colour so the
       JS-formatted MM/DD/YYYY string is clearly readable. */
    [b-burfytjqly] .adv-detail-date-field .date-input-wrap.has-value .date-placeholder {
        color: #212529;
    }

    /* Hide the overlay only while the picker wheel is active so the native
       interaction is unobstructed; restore it the moment focus leaves. */
    [b-burfytjqly] .adv-detail-date-field .date-input-wrap.is-focused .date-placeholder {
        display: none;
    }
  }
}

/* ── Android (and other touch) date-field enhancements ─────────────────
   Android Chrome renders native date inputs with a generic dropdown chevron
   (not a calendar) and no MM/DD/YYYY hint. Unlike iOS, the picker opens ONLY
   by tapping the native ::-webkit-calendar-picker-indicator, so we must NOT
   use appearance:none here (that would remove it). Instead we re-skin the
   indicator to a calendar glyph (it stays clickable) and reveal the same
   overlay placeholder. Scoped to touch devices so desktop is untouched; the
   iOS @supports block above wins for iOS (no native indicator there).
   The overlay has background-color:#fff so it visually covers the browser's
   locale-formatted text; _dateFields.js writes MM/DD/YYYY into the overlay. */
@media (hover: none) and (pointer: coarse) {
    [b-burfytjqly] .adv-detail-date-field .form-control[type="date"] {
        padding-right: 2.25rem;
        /* Establish a containing block so the picker indicator can be pinned
           to the right edge regardless of focus/flow (see below). */
        position: relative;
    }

    [b-burfytjqly] .adv-detail-date-field .form-control[type="date"]::-webkit-calendar-picker-indicator {
        -webkit-appearance: none;
        appearance: none;
        /* Pin the indicator to a fixed spot at the right edge so it does not
           move into the value/placeholder area when the picker opens (the
           overlay that normally covers it is hidden on focus). Matches the
           iOS background-icon position (right .625rem) for visual parity. */
        position: absolute;
        right: .625rem;
        top: 50%;
        transform: translateY(-50%);
        margin: 0;
        width: 1.1rem;
        height: 1.1rem;
        opacity: 1;
        cursor: pointer;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236c757d'%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-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: center;
        background-size: 1.1rem 1.1rem;
    }

    [b-burfytjqly] .adv-detail-date-field .date-input-wrap .date-placeholder {
        display: flex;
        align-items: center;
        position: absolute;
        left: 1px;
        right: 2rem;
        top: 1px;
        bottom: 1px;
        padding-left: .375rem;
        color: #6c757d;
        background-color: #fff;
        pointer-events: none;
        border-top-left-radius: .375rem;
        border-bottom-left-radius: .375rem;
    }

    /* Show the overlay in input-text colour once a date is selected so the
       JS-formatted MM/DD/YYYY value is visible over the native display. */
    [b-burfytjqly] .adv-detail-date-field .date-input-wrap.has-value .date-placeholder {
        color: #212529;
    }

    /* Hide only while the picker is active. */
    [b-burfytjqly] .adv-detail-date-field .date-input-wrap.is-focused .date-placeholder {
        display: none;
    }
}


/* ── Advanced Search: raise Bootstrap md breakpoint to 1165px ─────────────
   Bootstrap col-md-* activates at 768px, but on this page the multi-column
   layout causes text-wrapping and UI distortion below 1165px.  Force all
   grid columns to remain full-width until the wider threshold is reached.
   This override is scoped to the Advanced Search page only and does not
   affect the Basic Search page. */
@media (min-width: 768px) and (max-width: 1164px) {
    [b-burfytjqly] .col-md-4,
    [b-burfytjqly] .col-md-6,
    [b-burfytjqly] .col-md-8 {
        flex: 0 0 auto;
        width: 100%;
    }
}

@media (min-width: 1165px) {
    [b-burfytjqly] .adv-detail-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 1.5rem;
        align-items: start;
    }

    [b-burfytjqly] .adv-detail-county {
        grid-column: 1;
        grid-row: 1;
    }

    [b-burfytjqly] .adv-detail-date-range {
        grid-column: 2;
        grid-row: 1;
    }

    [b-burfytjqly] .adv-detail-amount-range {
        grid-column: 3;
        grid-row: 1;
    }

    [b-burfytjqly] .adv-detail-city {
        grid-column: 1;
        grid-row: 2;
    }

    [b-burfytjqly] .adv-detail-name-entry,
    [b-burfytjqly] .adv-detail-last-name {
        grid-row: 2;
        margin-top: 0;
    }

    [b-burfytjqly] .adv-detail-name-entry {
        grid-column: 2;
    }

    [b-burfytjqly] .adv-detail-last-name {
        grid-column: 3;
        margin-top: 28px;
    }

    [b-burfytjqly] .adv-detail-state {
        grid-column: 1;
        grid-row: 3;
    }

    [b-burfytjqly] .adv-detail-purpose {
        grid-column: 2;
        grid-row: 3;
    }

    [b-burfytjqly] .adv-detail-profession {
        grid-column: 3;
        grid-row: 3;
        margin-top: 4px;
    }

    [b-burfytjqly] .adv-detail-zip {
        grid-column: 1;
        grid-row: 4;
    }

    [b-burfytjqly] .adv-detail-payment-method {
        grid-column: 2;
        grid-row: 4;
    }

    [b-burfytjqly] .adv-detail-payment-method .form-select {
        margin-top: 28px;
    }

    [b-burfytjqly] .adv-detail-employer {
        grid-column: 3;
        grid-row: 4;
        margin-top: 4px;
    }

    [b-burfytjqly] .adv-detail-employer .form-control {
        margin-top: 28px;
    }
}

/* Checkbox-list grid — force single-column on all mobile widths.
   Because the Advanced Search mobile-to-desktop threshold is now 1165px,
   the auto-fill multi-column grid must be suppressed below that width.
   Receipt / Expenditure already enforce 1fr at every width via their
   ID-scoped rule above, so this media query is a no-op for those two but
   is necessary for Committee, Party, and Office. */
@media (max-width: 1164px) {
    [b-burfytjqly] .adv-type-panel {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
        border: 0;
        border-radius: 0;
        padding: 8px;
    }

    [b-burfytjqly] .adv-type-toggle {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        column-gap: .5rem;
        align-items: flex-start;
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
        overflow: visible;
    }

    [b-burfytjqly] .adv-type-toggle-text {
        grid-column: 1;
        width: 100%;
        min-width: 0;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        overflow-wrap: anywhere;
        word-break: normal;
        hyphens: none;
    }

    [b-burfytjqly] .adv-type-toggle > .adv-type-toggle-icon {
        grid-column: 2;
        align-self: start;
        flex: none;
        margin-left: 0;
    }

    [b-burfytjqly] .adv-type-list {
        grid-template-columns: 1fr;
        height: auto;
        max-height: none;
        overflow: hidden;
        gap: 6px;
        border: 0;
        padding: 0;
        width: 100%;
        min-width: min(100%, 12rem);
        max-width: 100%;
        min-inline-size: 0;
        box-sizing: border-box;
    }

    [b-burfytjqly] .adv-type-panel > .form-check,
    [b-burfytjqly] .adv-type-item.form-check {
        min-height: 0;
        padding-left: 0;
        margin-bottom: 0;
    }

    [b-burfytjqly] .adv-type-panel > .form-check {
        display: flex;
        align-items: flex-start;
        gap: 8px;
    }

    [b-burfytjqly] .adv-type-panel > .form-check > .form-check-input,
    [b-burfytjqly] .adv-type-item .form-check-input {
        margin-left: 0;
        margin-top: 0.25rem;
        flex: 0 0 auto;
    }

    [b-burfytjqly] .adv-type-item {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: flex-start;
        column-gap: 0.5rem;
        row-gap: 4px;
        padding: 2px 0;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    [b-burfytjqly] .adv-type-item .form-check-label {
        display: block;
        grid-column: 2;
        width: 100%;
        min-width: 0;
        max-width: none;
        white-space: normal;
        overflow: visible;
        overflow-wrap: anywhere;
        word-break: normal;
        hyphens: none;
        line-height: 1.25;
    }

    [b-burfytjqly] .adv-detail-date-range {
        grid-template-columns: 1fr;
        row-gap: 1rem;
    }

    [b-burfytjqly] .adv-detail-amount-range > .col-6 {
        width: 100%;
    }

    [b-burfytjqly] .adv-type-item .form-check-label::after {
        display: none;
    }
}

/* At very narrow effective widths, keep every transaction-detail child
   inside the page gutter and let the paired controls use the full line. The
   existing <=1164px rules continue to own the ordinary responsive layout. */
@media (max-width: 360px) {
    [b-burfytjqly] .ibox-content {
        padding-left: 0;
        padding-right: 0;
    }

    [b-burfytjqly] .adv-detail-grid,
    [b-burfytjqly] .adv-detail-date-range,
    [b-burfytjqly] .adv-detail-amount-range,
    [b-burfytjqly] .adv-detail-amount-range > [class*="col-"] {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    [b-burfytjqly] .adv-detail-date-range {
        row-gap: 12px;
    }

    [b-burfytjqly] .adv-detail-amount-range {
        margin-left: 0;
        margin-right: 0;
    }

    [b-burfytjqly] .adv-paired-field,
    [b-burfytjqly] .adv-detail-grid > * {
        min-width: 0;
        max-width: 100%;
    }

    [b-burfytjqly] .adv-comm-actions,
    [b-burfytjqly] #advancedSearchForm #divButtons {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 6px;
    }

    [b-burfytjqly] .adv-comm-actions > *,
    [b-burfytjqly] #advancedSearchForm #divButtons > * {
        margin-left: 0 !important;
    }
}
/* /Pages/CFTxnLkup/Results.cshtml.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════════
   Results page — CSS isolation stylesheet.
   Scoped to the rendered page via the b-* attribute injected by ASP.NET Core.
   ::deep is required wherever the rule must reach a descendant rendered by
   Kendo UI (the grid header, pager, table cells, etc.) — those elements are
   children of #gridResults (which carries the page scope), so the compiled
   selector .b-xxxxx .k-grid-header still matches at runtime.
   Note: Kendo popup elements that get appended to <body> (e.g. column menus)
   would not be reached by these rules; none are styled here today.
   ════════════════════════════════════════════════════════════════════════ */

/* ── Outer spacing — match legacy container spacing ─────────────────── */
[b-idzldthhok] .ibox {
    margin-left: 30px;
    margin-right: 30px;
}

/* ── Local utility classes (used only on this page) ─────────────────── */
[b-idzldthhok] .center-alignment {
    text-align: center;
}

[b-idzldthhok] .bold-text {
    font-weight: 600;
}

/* ── Monetary column alignment ──────────────────────────────────────── */
/* Higher specificity (.k-grid td.monetary-alignment) is required to override
   Kendo's default .k-grid td left-alignment. Applied to cells only — the
   header stays default-aligned to match the legacy Infragistics grid. */
[b-idzldthhok] .k-grid td.monetary-alignment {
    text-align: right;
}

/* ── Grid header / footer / pager background ───────────────────────── */
[b-idzldthhok] .k-grid-header,
[b-idzldthhok] .k-grid-header .k-header,
[b-idzldthhok] .k-grouping-header,
[b-idzldthhok] .k-grid-pager,
[b-idzldthhok] .k-grid-footer {
    background-color: #C4E2F7 !important;
}

/* ── Alternating row color ──────────────────────────────────────────── */
[b-idzldthhok] .k-table-alt-row {
    background-color: #F3FAFE !important;
}

/* ── Row separators ─────────────────────────────────────────────────── */
[b-idzldthhok] #gridResults .k-grid-table tr > td,
[b-idzldthhok] #gridResults .k-grid-table tr > .k-table-td,
[b-idzldthhok] #gridResults .k-table-row > td,
[b-idzldthhok] #gridResults .k-table-row > .k-table-td {
    border-bottom: 1px solid #e5e5e5 !important;
}

/* ── Column header style ────────────────────────────────────────────── */
[b-idzldthhok] .k-grid-header .k-header {
    font-weight: bold;
    text-decoration: none;
    text-align: center !important;
}

/* ── Pager layout — info on left, page numbers on right ────────────── */
[b-idzldthhok] .k-grid-pager {
    display: flex !important;
    flex-direction: row-reverse;
    align-items: center;
}

[b-idzldthhok] .k-pager-info {
    justify-content: flex-start;
}

[b-idzldthhok] .k-pager-numbers-wrap {
    justify-content: flex-end;
}

[b-idzldthhok] .k-pager-numbers-wrap .k-button {
    background-color: white !important;
    border: 1px solid #ccc !important;
    color: #333 !important;
    margin-left: 6px;
}

[b-idzldthhok] .k-pager-numbers-wrap .k-button.k-state-selected,
[b-idzldthhok] .k-pager-numbers-wrap .k-button.k-selected,
[b-idzldthhok] .k-pager-numbers-wrap .k-button.k-state-active,
[b-idzldthhok] .k-pager-numbers-wrap .k-button[aria-current="true"] {
    background-color: #1974AE !important; /* #ffffff on #1974AE = 5.06:1, WCAG AA ✓ */
    color: #ffffff !important;
    border-color: #000 !important;
    font-weight: bold;
    box-shadow: 0 0 0 2px #000, 0 2px 6px rgba(0,0,0,0.15);
}

/* ── Enable horizontal scrolling for the wide grid (desktop) ────────── */
[b-idzldthhok] #gridResults .k-grid-content {
    overflow-x: auto;
}

/* ── Pager focus indicators (WCAG 1.4.11 — defect 652, 660) ─────────
   Ensures page number buttons, prev/next nav, and items-per-page dropdown
   show a visible 3:1+ contrast focus ring when receiving keyboard focus. */
[b-idzldthhok] .k-pager-numbers-wrap .k-button:focus,
[b-idzldthhok] .k-pager-numbers-wrap .k-button:focus-visible,
[b-idzldthhok] .k-grid-pager .k-pager-nav:focus,
[b-idzldthhok] .k-grid-pager .k-pager-nav:focus-visible,
[b-idzldthhok] .k-grid-pager .k-pager-first:focus,
[b-idzldthhok] .k-grid-pager .k-pager-first:focus-visible,
[b-idzldthhok] .k-grid-pager .k-pager-last:focus,
[b-idzldthhok] .k-grid-pager .k-pager-last:focus-visible,
[b-idzldthhok] .k-grid-pager .k-dropdownlist:focus-within,
[b-idzldthhok] .k-grid-pager .k-pager-input input:focus,
[b-idzldthhok] .k-grid-pager .k-pager-input .k-input-inner:focus {
    outline: 3px solid #1a1a1a !important;
    outline-offset: -2px;
}

[b-idzldthhok] #divGrid {
    width: 100%;
}

/* ── Pager "Pg" label ────────────────────────────────────────────────── */
[b-idzldthhok] #gridResults .k-pager-input {
    white-space: nowrap;
}
[b-idzldthhok] #gridResults .k-pager-input::before {
    content: "Pg";
    display: inline-block;
    margin-right: 6px;
    font-weight: 600;
}
[b-idzldthhok] #gridResults .k-pager-input .k-pager-input-text,
[b-idzldthhok] #gridResults .k-pager-input .k-label,
[b-idzldthhok] #gridResults .k-pager-input .k-input-label,
[b-idzldthhok] #gridResults .k-pager-input .k-pager-input-label {
    display: none !important;
    visibility: hidden !important;
}

/* ── Mobile: single combined column ────────────────────────────────── */
@media (max-width: 600px) {
    [b-idzldthhok] .ibox {
        margin-left: 0;
        margin-right: 0;
    }

    [b-idzldthhok] .k-grid td.desktop-col,
    [b-idzldthhok] .k-grid th.desktop-col {
        display: none !important;
    }

    [b-idzldthhok] .k-grid td.mobile-combined-col,
    [b-idzldthhok] .k-grid th.mobile-combined-col {
        display: table-cell !important;
        width: 100% !important;
    }

    [b-idzldthhok] .k-grid table {
        table-layout: auto !important;
    }

    /* Hide column headers on mobile */
    [b-idzldthhok] #gridResults .k-grid-header,
    [b-idzldthhok] #gridResults thead,
    [b-idzldthhok] #gridResults .k-table-thead {
        display: none !important;
    }

    /* Allow grid content to grow */
    [b-idzldthhok] #gridResults .k-grid-content,
    [b-idzldthhok] #gridResults .k-table-wrap {
        height: auto !important;
        max-height: none !important;
        overflow-x: hidden !important;
    }

    /* Pager wrapping on mobile */
    [b-idzldthhok] .k-grid-pager {
        flex-direction: row !important;
        flex-wrap: wrap !important;
        justify-content: center;
        align-items: center;
        gap: 4px 6px;
        padding: 8px 14px;
        overflow: visible !important;
        width: 100%;
        box-sizing: border-box;
        min-width: 0;
    }

    [b-idzldthhok] .k-grid-pager > * { min-width: 0; }

    [b-idzldthhok] .k-grid-pager .k-button,
    [b-idzldthhok] .k-pager-numbers-wrap .k-button {
        margin: 0 2px !important;
        padding: 2px 8px !important;
        min-width: 34px;
        line-height: 1.2;
        flex: 0 0 auto;
        box-sizing: border-box;
    }

    [b-idzldthhok] .k-grid-pager .k-pager-numbers-wrap {
        flex: 1 1 100%;
        justify-content: center;
        min-width: 0;
    }

    [b-idzldthhok] .k-grid-pager .k-pager-info {
        flex: 1 1 100%;
        text-align: center;
        min-width: 0;
    }

    [b-idzldthhok] #gridResults .k-pager-numbers {
        display: none !important;
    }

    [b-idzldthhok] #gridResults .k-pager-info,
    [b-idzldthhok] #divGrid .k-pager-info {
        display: none !important;
    }

    [b-idzldthhok] .k-grid-pager .k-pager-first,
    [b-idzldthhok] .k-grid-pager .k-pager-prev {
        margin-left: 10px !important;
    }

    [b-idzldthhok] .k-grid-pager .k-pager-next,
    [b-idzldthhok] .k-grid-pager .k-pager-last {
        margin-right: 10px !important;
    }

    [b-idzldthhok] #gridResults .k-pager-input {
        display: flex !important;
        align-items: center;
        gap: 4px;
        margin: 2px 4px;
        flex: 0 1 140px;
        white-space: nowrap;
        min-width: 110px;
        width: auto;
    }

    [b-idzldthhok] #gridResults .k-pager-input input,
    [b-idzldthhok] #gridResults .k-pager-input .k-input-inner,
    [b-idzldthhok] #gridResults .k-pager-input .k-textbox {
        width: 36px !important;
        min-width: 28px !important;
        text-align: center;
        padding: 2px 2px !important;
        box-sizing: border-box;
    }
}

/* ── Desktop: hide mobile column ────────────────────────────────────── */
@media (min-width: 601px) {
    [b-idzldthhok] .k-grid td.mobile-combined-col,
    [b-idzldthhok] .k-grid th.mobile-combined-col {
        display: none !important;
    }

    [b-idzldthhok] .k-grid td.desktop-col,
    [b-idzldthhok] .k-grid th.desktop-col {
        display: table-cell !important;
    }

    [b-idzldthhok] .k-grid table {
        table-layout: fixed !important;
    }
}

/* ── Form control border contrast (WCAG 3:1) ───────────────────────── */
[b-idzldthhok] .form-control,
[b-idzldthhok] .form-select {
    border-color: #909090;
}

/* ── Export progress overlay / modal card ────────────────────────────── */
/* All .export-modal-* styles have been moved to wwwroot/css/site.css.
   The <output id="divExportProgress"> element is rendered at the top level
   of the Results page body (a direct sibling of .ibox, outside any
   CSS-isolation-scoped ancestor), so CSS isolation selectors cannot reach it
   reliably.  The global site.css rules apply without any scoping restriction. */
/* /Pages/CFTxnLkup/TransactionSearchByEntity.cshtml.rz.scp.css */
/* ── Org / Individual Field Visibility ───────────────────────────────
   The form's data-is-org attribute is updated by the page's colocated JS
   when the user flips the Is Organization? radio. CSS owns the show/hide
   so there's no inline `style="display:none"` and no jQuery .show()/.hide()
   churn. Specificity (0,2,1) beats .form-control (0,1,1) so no !important. */
[b-45aq0kl4lb] form[data-is-org="true"] .individual-only {
    display: none;
}

[b-45aq0kl4lb] form[data-is-org="false"] .org-only {
    display: none;
}

/* ── Form Control Borders ─────────────────────────────────────────────
   Ensure form control borders meet WCAG 3:1 contrast ratio against white.
   #909090 on #ffffff = ~3.9:1, passing the 3:1 requirement (WCAG 1.4.11).
   .k-numerictextbox is the outer wrapper Kendo renders for NumericTextBox;
   its border is set by the Kendo theme's .k-input-solid rule and requires
   !important to override (defect 644). */
[b-45aq0kl4lb] .form-control,
[b-45aq0kl4lb] .form-select,
[b-45aq0kl4lb] .form-check-input {
    border-color: #909090;
}

[b-45aq0kl4lb] .k-numerictextbox {
    border-color: #909090 !important;
}

/* Amount fields use a static "$" prefix outside the typed value. */
[b-45aq0kl4lb] .amount-input-group {
    flex-wrap: nowrap;
}

[b-45aq0kl4lb] .amount-prefix {
    border-color: #909090;
    background-color: #fff;
    color: #212529;
}

[b-45aq0kl4lb] .amount-input-group .form-control {
    border-color: #909090;
}

/* ── Focus indicators for Kendo widget wrappers (WCAG 1.4.11) ────────
   Kendo wraps inner <input> elements in container divs that may clip the
   native focus ring. :focus-within on the wrapper ensures a visible 3:1+
   contrast indicator appears around the full control boundary. */
[b-45aq0kl4lb] .k-numerictextbox:focus-within {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
    border-radius: 4px;
}

[b-45aq0kl4lb] .amount-input-group:focus-within {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
    border-radius: .375rem;
}

[b-45aq0kl4lb] .amount-input-group:focus-within .input-group-text,
[b-45aq0kl4lb] .amount-input-group:focus-within .form-control {
    border-color: #258cfb;
}

/* ── Focus indicator for the Type dropdown (WCAG 1.4.11) ─────────────
   Matches the .form-control:focus treatment from site.css */
[b-45aq0kl4lb] .form-select:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

/* ── Search container width ───────────────────────────────────────────
   Caps the search-form column at the legacy width without an inline style.
   Child controls are constrained below so the form can reflow without
   clipping menus, validation messages, or other positioned content. */
[b-45aq0kl4lb] .txn-search-container {
    max-width: 970px;
    width: 100%;
    min-width: 0;
    margin-left: auto;
    margin-right: auto;
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
}

[b-45aq0kl4lb] #basicSearchForm,
[b-45aq0kl4lb] #basicSearchForm > fieldset,
[b-45aq0kl4lb] #basicSearchForm .search-form-rows,
[b-45aq0kl4lb] #basicSearchForm .search-row,
[b-45aq0kl4lb] #basicSearchForm .search-cell {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* ── Is Organization fieldset — inline styling ───────────────────────
   Removes default fieldset chrome while keeping the semantic grouping
   for screen readers (WCAG 1.3.1 — defect 650). */
[b-45aq0kl4lb] .is-org-fieldset {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

[b-45aq0kl4lb] .is-org-fieldset > legend {
    display: inline;
    float: left;
    margin-right: 8px;
    font-weight: bold;
    white-space: nowrap;
    font-size: inherit;
    padding: 0;
    width: auto;
}

/* ── Universal stacked layout ────────────────────────────────────────
   Simple search always uses the stacked (formerly "mobile") design so
   visible field-level labels remain available at all viewport widths. */
[b-45aq0kl4lb] .search-form-rows,
[b-45aq0kl4lb] .search-row {
    display: block;
    width: 100%;
}

[b-45aq0kl4lb] .search-row {
    margin-bottom: 16px;
}

/* Show labels above their inputs. */
[b-45aq0kl4lb] .field-label {
    display: block;
    font-weight: 600;
    margin-bottom: 4px;
}

/* Field cell uses flexbox — wraps at 3 controls per row. */
[b-45aq0kl4lb] .search-cell {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

/* Is Organization row — layout provided by the fieldset. */
[b-45aq0kl4lb] .is-org-row .search-cell {
    padding-bottom: 0;
    justify-content: flex-start;
}

/* Half-width inputs share row space equally. */
[b-45aq0kl4lb] .half-text {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
}

/* Type dropdown — stack its label above the select without changing other rows. */
[b-45aq0kl4lb] .type-field {
    flex: 1 1 0;
    min-width: 0;
    max-width: 100%;
    display: flex;
    flex-direction: column;
}

/* Name field pair — each wraps one label + input so they stay grouped.
   Matches the .date-field pattern so label and input are never separated
   at any viewport width (WCAG 1.4.10 Reflow — Defect 771). */
[b-45aq0kl4lb] .name-field {
    flex: 1 1 11rem;
    min-width: min(100%, 11rem);
    max-width: 100%;
    display: flex;
    flex-direction: column;
}

/* Committee field — stacks label above the input+button group. */
[b-45aq0kl4lb] .committee-field {
    flex: 1 1 11rem;
    min-width: min(100%, 11rem);
    max-width: 100%;
    display: flex;
    flex-direction: column;
}

[b-45aq0kl4lb] .committee-input-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

[b-45aq0kl4lb] .committee-input-group > .full-text {
    flex: 1 1 11rem;
    min-width: min(100%, 11rem);
}

[b-45aq0kl4lb] .committee-input-group > .btn {
    flex: 0 0 auto;
    max-width: 100%;
    white-space: normal;
}

/* Amount field pair — each wraps one label + input-group so they stay grouped
   (WCAG 1.4.10 Reflow — Defect 772). */
[b-45aq0kl4lb] .amount-field {
    flex: 1 1 11rem;
    min-width: min(100%, 11rem);
    max-width: 100%;
    display: flex;
    flex-direction: column;
}

[b-45aq0kl4lb] .amount-input-group,
[b-45aq0kl4lb] .amount-input-group > .form-control,
[b-45aq0kl4lb] .date-input-wrap,
[b-45aq0kl4lb] .date-input-wrap > .form-control,
[b-45aq0kl4lb] .committee-input-group > .full-text {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}


/* Date field pair — keep the two-column layout explicit so native date inputs
   cannot overflow into each other on narrow Safari viewports. column-gap: 1rem
   gives the same clear separation as the Last/First Name fields. */
[b-45aq0kl4lb] .date-range-cell {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
    gap: 12px 1rem;
    align-items: start;
}

[b-45aq0kl4lb] .date-field {
    flex: 1 1 0;
    min-width: 0;
    max-width: 100%;
    display: flex;
    flex-direction: column;
}

[b-45aq0kl4lb] .date-input-wrap {
    position: relative;
    width: 100%;
}

[b-45aq0kl4lb] .uses-flatpickr .flatpickr-alt-input,
[b-45aq0kl4lb] .uses-flatpickr input[data-date-field="true"] {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    font-size: 0.875rem;
    padding-right: 2.5rem;
}

[b-45aq0kl4lb] .date-picker-trigger {
    position: absolute;
    top: 50%;
    right: 0.375rem;
    width: 1.75rem;
    height: 1.75rem;
    transform: translateY(-50%);
    border: 0;
    border-radius: 0.25rem;
    background-color: transparent;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236c757d'%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-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1.1rem 1.1rem;
    cursor: pointer;
}

[b-45aq0kl4lb] .date-picker-trigger:focus-visible {
    outline: 2px solid #0d6efd;
    outline-offset: 1px;
}

[b-45aq0kl4lb] .uses-flatpickr .flatpickr-source-input {
    display: none !important;
}

[b-45aq0kl4lb] .uses-flatpickr .date-placeholder {
    display: none !important;
}

[b-45aq0kl4lb] .uses-flatpickr input[data-date-field="true"]::placeholder,
[b-45aq0kl4lb] .uses-flatpickr input[data-date-field="true"]:focus::placeholder {
    color: #6c757d;
    opacity: 1;
}

[b-45aq0kl4lb] .flatpickr-reset-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem 0.75rem;
    border-top: 1px solid #dee2e6;
    background-color: #fff;
}

[b-45aq0kl4lb] .flatpickr-reset-action {
    border: 1px solid #0d6efd;
    background-color: #0d6efd;
    color: #fff;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25;
    padding: 0.25rem 0.5rem;
    cursor: pointer;
}

[b-45aq0kl4lb] .flatpickr-reset-action:hover,
[b-45aq0kl4lb] .flatpickr-reset-action:focus-visible {
    background-color: #0b5ed7;
    border-color: #0a58ca;
    color: #fff;
}

@media (hover: none) and (pointer: coarse) {
  @supports (-webkit-touch-callout: none) {
    [b-45aq0kl4lb] .cftxn-flatpickr-calendar {
        transform: scale(0.92);
        transform-origin: top center;
    }

    [b-45aq0kl4lb] .cftxn-flatpickr-calendar .flatpickr-months {
        padding-top: 0.125rem;
    }

    [b-45aq0kl4lb] .cftxn-flatpickr-calendar .flatpickr-month {
        height: 2.1rem;
    }

    [b-45aq0kl4lb] .cftxn-flatpickr-calendar .flatpickr-current-month {
        padding-top: 0.15rem;
    }

    [b-45aq0kl4lb] .cftxn-flatpickr-calendar .flatpickr-weekdays {
        height: 1.75rem;
    }

    [b-45aq0kl4lb] .cftxn-flatpickr-calendar .flatpickr-weekday,
    [b-45aq0kl4lb] .cftxn-flatpickr-calendar .flatpickr-day {
        font-size: 0.8rem;
    }

    [b-45aq0kl4lb] .cftxn-flatpickr-calendar .flatpickr-day {
        height: 1.9rem;
        line-height: 1.9rem;
        max-width: 1.9rem;
    }

    [b-45aq0kl4lb] .cftxn-flatpickr-calendar .flatpickr-reset-footer {
        padding-top: 0.375rem;
        padding-bottom: 0.5rem;
    }

    [b-45aq0kl4lb] .cftxn-flatpickr-calendar .flatpickr-reset-action {
        font-size: 0.8rem;
        padding: 0.2rem 0.4rem;
    }
  }
}

[b-45aq0kl4lb] .date-field .form-control[type="date"] {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-inline-size: 0;
    box-sizing: border-box;
    padding-left: .375rem;
    padding-right: .375rem;
    -webkit-appearance: auto;
    appearance: auto;
}

[b-45aq0kl4lb] .date-field .form-control[type="date"]::-webkit-calendar-picker-indicator {
    display: block;
}

/* Overlay placeholder is hidden by default; iOS Safari rules below reveal it.
   nowrap keeps the fixed MM/DD/YYYY value on one line so it never wraps and
   gets vertically clipped inside the height-constrained input. */
[b-45aq0kl4lb] .date-placeholder {
    display: none;
    white-space: nowrap;
}

/* ── iOS Safari date-field enhancements ──────────────────────────────
   iOS Safari ignores placeholder= and renders no calendar picker icon on
   native date inputs. `-webkit-touch-callout: none` is supported only on
   WebKit — but that includes DESKTOP macOS Safari, which must NOT receive
   these mobile overrides (appearance:none + transparent native text). So the
   @supports feature query is nested inside a coarse-pointer / no-hover media
   guard: together they match iOS touch Safari only, excluding desktop Safari.
   This mirrors the committee-list surrogate gating. The overlay covers the
   input's native locale-formatted text so the displayed value is always
   MM/DD/YYYY (set by _dateFields.js). */
@media (hover: none) and (pointer: coarse) {
  @supports (-webkit-touch-callout: none) {
    [b-45aq0kl4lb] .date-field .form-control[type="date"] {
        /* Force a normal bordered box on iOS Safari, which otherwise discards
           the .form-control border and renders the native control borderless
           (iOS Chrome honors the border with appearance:auto, Safari does not). */
        -webkit-appearance: none;
        appearance: none;
        padding-right: 2.25rem;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236c757d'%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-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right .625rem center;
        background-size: 1.1rem 1.1rem;
        /* Hide the browser's own locale-formatted value text; the overlay
           below always shows MM/DD/YYYY so the two don't compete.
           Accessibility: this only affects the visual paint. The .date-placeholder
           overlay is aria-hidden="true", so assistive tech ignores it and reads
           the underlying native input's real (ISO) date value instead — the
           transparent colour is intentional and must not be "fixed" to a visible
           colour, or the overlay's MM/DD/YYYY text would be shown on top of it. */
        color: transparent;
    }

    [b-45aq0kl4lb] .date-input-wrap .date-placeholder {
        display: flex;
        align-items: center;
        position: absolute;
        left: 1px;
        right: 1.75rem;
        top: 1px;
        bottom: 1px;
        padding-left: .375rem;
        overflow: hidden;
        text-overflow: ellipsis;
        /* Placeholder colour when the field is empty. */
        color: #6c757d;
        font-size: 0.875rem;
        background-color: #fff;
        pointer-events: none;
        /* Match the input's rounded corners so the square overlay no longer
           paints over the curved left border (which made it look detached). */
        border-top-left-radius: .375rem;
        border-bottom-left-radius: .375rem;
    }

    /* When a value is selected show the overlay in input-text colour so the
       JS-formatted MM/DD/YYYY string is clearly readable. */
    [b-45aq0kl4lb] .date-input-wrap.has-value .date-placeholder {
        color: #212529;
    }

    /* Hide the overlay only while the picker wheel is active so the native
       interaction is unobstructed; restore it the moment focus leaves. */
    [b-45aq0kl4lb] .date-input-wrap.is-focused .date-placeholder {
        display: none;
    }
  }
}

/* ── Android (and other touch) date-field enhancements ─────────────────
   Android Chrome renders native date inputs with a generic dropdown chevron
   (not a calendar) and no MM/DD/YYYY hint. Unlike iOS, the picker opens ONLY
   by tapping the native ::-webkit-calendar-picker-indicator, so we must NOT
   use appearance:none here (that would remove it). Instead we re-skin the
   indicator to a calendar glyph (it stays clickable) and reveal the same
   overlay placeholder. Scoped to touch devices so desktop, which already
   renders both natively, is untouched. The iOS @supports block above wins
   for iOS (no native indicator there); these rules are harmless no-ops on iOS.
   The overlay has background-color:#fff so it visually covers the browser's
   locale-formatted text; _dateFields.js writes MM/DD/YYYY into the overlay. */
@media (hover: none) and (pointer: coarse) {
    [b-45aq0kl4lb] .date-field .form-control[type="date"] {
        padding-right: 2.25rem;
        /* Establish a containing block so the picker indicator can be pinned
           to the right edge regardless of focus/flow (see below). */
        position: relative;
    }

    [b-45aq0kl4lb] .date-field .form-control[type="date"]::-webkit-calendar-picker-indicator {
        -webkit-appearance: none;
        appearance: none;
        /* Pin the indicator to a fixed spot at the right edge so it does not
           move into the value/placeholder area when the picker opens (the
           overlay that normally covers it is hidden on focus). Matches the
           iOS background-icon position (right .625rem) for visual parity. */
        position: absolute;
        right: .625rem;
        top: 50%;
        transform: translateY(-50%);
        margin: 0;
        width: 1.1rem;
        height: 1.1rem;
        opacity: 1;
        cursor: pointer;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236c757d'%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-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: center;
        background-size: 1.1rem 1.1rem;
    }

    [b-45aq0kl4lb] .date-input-wrap .date-placeholder {
        display: flex;
        align-items: center;
        position: absolute;
        left: 1px;
        right: 1.75rem;
        top: 1px;
        bottom: 1px;
        padding-left: .375rem;
        overflow: hidden;
        text-overflow: ellipsis;
        color: #6c757d;
        font-size: 0.875rem;
        background-color: #fff;
        pointer-events: none;
        border-top-left-radius: .375rem;
        border-bottom-left-radius: .375rem;
    }

    /* Show the overlay in input-text colour once a date is selected so the
       JS-formatted MM/DD/YYYY value is visible over the native display. */
    [b-45aq0kl4lb] .date-input-wrap.has-value .date-placeholder {
        color: #212529;
    }

    /* Hide only while the picker is active. */
    [b-45aq0kl4lb] .date-input-wrap.is-focused .date-placeholder {
        display: none;
    }
}

/* Full-width inputs share row with adjacent controls (e.g. Comm Search). */
[b-45aq0kl4lb] .full-text {
    flex: 1 1 0;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}


/* Validation messages always appear on their own line below the input fields.
   display:block is sufficient; flex: 1 1 100% was meaningful when .validation-msg
   was a flex-row child but is redundant inside .amount-field (flex-direction: column)
   where each child is already full-width. */
[b-45aq0kl4lb] .validation-msg {
    display: block;
}

[b-45aq0kl4lb] .container {
    padding-left: 16px;
    padding-right: 16px;
}

[b-45aq0kl4lb] .btn {
    padding-top: .375rem;
    padding-bottom: .375rem;
    font-size: 1rem;
    line-height: 1.5;
}

/* Keep action controls usable when the intrinsic field sizing wraps the form. */
@media (max-width: 360px) {
    /* At an extremely narrow effective layout viewport, the shared ibox and
       page container padding otherwise consume most of the usable form width. */
    [b-45aq0kl4lb] .ibox-content {
        padding-left: 0;
        padding-right: 0;
    }

    [b-45aq0kl4lb] #mainContent {
        padding-left: 0;
        padding-right: 0;
    }

    [b-45aq0kl4lb] .txn-search-container {
        padding-left: 0;
        padding-right: 0;
    }

    [b-45aq0kl4lb] #basicSearchForm #divButtons {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 6px;
    }

    [b-45aq0kl4lb] #basicSearchForm #divButtons > * {
        margin-left: 0 !important;
    }
}
/* /Pages/Shared/_Layout.cshtml.rz.scp.css */
/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
for details on configuring this project to bundle and minify static web assets. */

a.navbar-brand[b-ly6i7tskj5] {
    white-space: normal;
    text-align: center;
    word-break: break-all;
}

a[b-ly6i7tskj5] {
    color: #0077cc;
}

.btn-primary[b-ly6i7tskj5] {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.nav-pills .nav-link.active[b-ly6i7tskj5], .nav-pills .show > .nav-link[b-ly6i7tskj5] {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.border-top[b-ly6i7tskj5] {
    border-top: 1px solid #e5e5e5;
}

.border-bottom[b-ly6i7tskj5] {
    border-bottom: 1px solid #e5e5e5;
}

.box-shadow[b-ly6i7tskj5] {
    box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}

button.accept-policy[b-ly6i7tskj5] {
    font-size: 1rem;
    line-height: inherit;
}

/* FOOTER */
.footer[b-ly6i7tskj5] {
    background: none repeat scroll 0 0 white;
    border-top: 1px solid #e7eaec;
    bottom: 0;
    left: 0;
    padding: 10px 20px;
    position: absolute;
    right: 0;
}
