/* Auto-generated by Layer 2 of the CSP inline-style remediation.
   Prefixed `epoint-` utility classes for recurring inline-style values
   that have no Bootstrap 5.3.8 utility equivalent. Regenerate via
   scratchpad/layer2_build.py rather than hand-editing where possible. */

.epoint-avatar-64 { width:64px; height:64px; background:var(--bgcolor)!important; }
.epoint-bg-169f85 { background-color:#169f85!important; }
.epoint-bg-f0f6fc { background-color:#f0f6fc!important; }
.epoint-bg-f1f1f1 { background-color:#f1f1f1!important; }
.epoint-bg-f2f2f2 { background-color:#f2f2f2!important; }
.epoint-bg-ground { background:#eef0f3!important; }
.epoint-bg-red { background-color:red!important; }
.epoint-border-1px-dashed-lightgrey { border:1px dashed lightgrey!important; }
.epoint-border-1px-solid-black { border:1px solid black!important; }
.epoint-border-bottom-1px-solid-black { border-bottom:1px solid black!important; }
.epoint-border-bottom-2px-solid-dee2e6 { border-bottom:2px solid #dee2e6!important; }
.epoint-border-bottom-2px-solid-e9ecef { border-bottom:2px solid #e9ecef!important; }
.epoint-border-solid-1px { border:solid 1px!important; }
.epoint-break-word { word-wrap:break-word!important; }
.epoint-cursor-move { cursor:move!important; }
.epoint-cursor-pointer { cursor:pointer!important; }
.epoint-end-10px { right:10px!important; }
.epoint-flex-1 { flex:1!important; }
.epoint-fs-0-875rem { font-size:0.875rem!important; }
.epoint-fs-0-8rem { font-size:0.8rem!important; }
.epoint-fs-1-2rem { font-size:1.2rem!important; }
.epoint-fs-1-5em { font-size:1.5em!important; }
.epoint-fs-10px { font-size:10px!important; }
.epoint-fs-120pct { font-size:120%!important; }
.epoint-fs-12px { font-size:12px!important; }
.epoint-fs-150pct { font-size:150%!important; }
.epoint-fs-15px { font-size:15px!important; }
.epoint-fs-18px { font-size:18px!important; }
.epoint-fs-20px { font-size:20px!important; }
.epoint-fs-22px { font-size:22px!important; }
.epoint-fs-2rem { font-size:2rem!important; }
.epoint-fs-40px { font-size:40px!important; }
.epoint-fs-8pt { font-size:8pt!important; }
.epoint-fs-95rem { font-size:.95rem!important; }
.epoint-h-10px { height:10px!important; }
.epoint-h-12px { height:12px!important; }
.epoint-h-24px { height:24px!important; }
.epoint-h-300px { height:300px!important; }
.epoint-h-30px { height:30px!important; }
.epoint-h-34px { height:34px!important; }
.epoint-h-350px { height:350px!important; }
.epoint-h-370px { height:370px!important; }
.epoint-h-40px { height:40px!important; }
.epoint-h-500px { height:500px!important; }
.epoint-h-50px { height:50px!important; }
.epoint-h-550px { height:550px!important; }
.epoint-h-600px { height:600px!important; }
.epoint-h-7px { height:7px!important; }
.epoint-h-80px { height:80px!important; }
.epoint-lh-1 { line-height:1!important; }
.epoint-lh-1-6 { line-height:1.6!important; }
.epoint-ls-08 { letter-spacing:.08em!important; }
.epoint-m-0 { margin:0!important; }
.epoint-m-0-auto { margin:0 auto!important; }
.epoint-m-0-auto-10px { margin:0 auto 10px!important; }
.epoint-m-0-auto-30px { margin:0 auto 30px!important; }
.epoint-m-10px-auto-10px { margin:10px auto 10px!important; }
.epoint-mark-52 { width:52px; height:52px; background:var(--bgcolor)!important; }
.epoint-mb-10px { margin-bottom:10px!important; }
.epoint-mb-5px { margin-bottom:5px!important; }
.epoint-me-20px { margin-right:20px!important; }
.epoint-mh-200px { max-height:200px!important; }
.epoint-mh-250px { max-height:250px!important; }
.epoint-mh-400px { max-height:400px!important; }
.epoint-mh-40vh { max-height:40vh!important; }
.epoint-mh-48px { max-height:48px!important; }
.epoint-mh-500px { max-height:500px!important; }
.epoint-mh-50px { max-height:50px!important; }
.epoint-minw-0 { min-width:0!important; }
.epoint-ms-10px { margin-left:10px!important; }
.epoint-ms-20px { margin-left:20px!important; }
.epoint-mt-10px { margin-top:10px!important; }
.epoint-mt-15px { margin-top:15px!important; }
.epoint-mw-400px { max-width:400px!important; }
.epoint-mw-50px { max-width:50px!important; }
.epoint-mw-70px { max-width:70px!important; }
.epoint-mw-750px { max-width:750px!important; }
.epoint-mw-800px { max-width:800px!important; }
.epoint-noti-dot { width:8px!important; }
.epoint-noti-dot-unread { height:8px!important; background:#0d6efd!important; }
.epoint-noti-list { max-height:420px!important; overflow-y:auto!important; }
.epoint-noti-msg { color:#515356!important; font-size:15px!important; line-height:1.35!important; display:-webkit-box!important; -webkit-line-clamp:2!important; -webkit-box-orient:vertical!important; overflow:hidden!important; }
.epoint-p-0 { padding:0!important; }
.epoint-p-0-25px { padding:0 25px!important; }
.epoint-p-0px-10px { padding:0px 10px!important; }
.epoint-p-0px-25px { padding:0px 25px!important; }
.epoint-p-10px { padding:10px!important; }
.epoint-p-20px { padding:20px!important; }
.epoint-p-5px { padding:5px!important; }
.epoint-p-85rem-1-25rem { padding:.85rem 1.25rem!important; }
.epoint-pagebreak-before-always { page-break-before:always!important; }
.epoint-pb-0-1rem { padding-bottom:0.1rem!important; }
.epoint-pb-50px { padding-bottom:50px!important; }
.epoint-ps-10px { padding-left:10px!important; }
.epoint-ps-12px { padding-left:12px!important; }
.epoint-ps-20px { padding-left:20px!important; }
.epoint-ps-25px { padding-left:25px!important; }
.epoint-pt-0-1rem { padding-top:0.1rem!important; }
.epoint-pt-10px { padding-top:10px!important; }
.epoint-pt-5px { padding-top:5px!important; }
.epoint-pt-calc0-375rem-1px { padding-top:calc(0.375rem + 1px)!important; }
.epoint-radius-0-75rem { border-radius:0.75rem!important; }
.epoint-radius-3px { border-radius:3px!important; }
.epoint-radius-4px { border-radius:4px!important; }
.epoint-resize-none { resize:none!important; }
.epoint-text-000000 { color:#000000!important; }
.epoint-text-00ff00 { color:#00FF00!important; }
.epoint-text-515356 { color:#515356!important; }
.epoint-text-adb5bd { color:#adb5bd!important; }
.epoint-text-black { color:black!important; }
.epoint-text-e9e93a { color:#e9e93a!important; }
.epoint-text-eb7801 { color:#eb7801!important; }
.epoint-text-ellipsis { text-overflow:ellipsis!important; }
.epoint-text-ffffff { color:#ffffff!important; }
.epoint-text-green { color:green!important; }
.epoint-text-muted { color:#73879c!important; }
.epoint-text-red { color:red!important; }
.epoint-text-white { color:white!important; }
.epoint-top-10px { top:10px!important; }
.epoint-w-0-1pct { width:0.1%!important; }
.epoint-w-100pct { width:100%!important; }
.epoint-w-100px { width:100px!important; }
.epoint-w-10pct { width:10%!important; }
.epoint-w-10px { width:10px!important; }
.epoint-w-11pct { width:11%!important; }
.epoint-w-12pct { width:12%!important; }
.epoint-w-14pct { width:14%!important; }
.epoint-w-150px { width:150px!important; }
.epoint-w-15px { width:15px!important; }
.epoint-w-15pct { width:15%!important; }
.epoint-w-18pct { width:18%!important; }
.epoint-w-1pct { width:1%!important; }
.epoint-w-20pct { width:20%!important; }
.epoint-w-220px { width:220px!important; }
.epoint-w-22pct { width:22%!important; }
.epoint-w-254px { width:254px!important; }
.epoint-w-25pct { width:25%!important; }
.epoint-w-30pct { width:30%!important; }
.epoint-w-30px { width:30px!important; }
.epoint-w-32pct { width:32%!important; }
.epoint-w-34px { width:34px!important; }
.epoint-w-40pct { width:40%!important; }
.epoint-w-45pct { width:45%!important; }
.epoint-w-45px { width:45px!important; }
.epoint-w-480 { width:480px!important; max-width:100%!important; }
.epoint-w-49-5pct { width:49.5%!important; }
.epoint-w-4px { width:4px!important; }
.epoint-w-50pct { width:50%!important; }
.epoint-w-50px { width:50px!important; }
.epoint-w-55pct { width:55%!important; }
.epoint-w-5pct { width:5%!important; }
.epoint-w-60pct { width:60%!important; }
.epoint-w-6pct { width:6%!important; }
.epoint-w-7-45pct { width:7.45%!important; }
.epoint-w-7-5pct { width:7.5%!important; }
.epoint-w-7pct { width:7%!important; }
.epoint-w-7px { width:7px!important; }
.epoint-w-8-5pct { width:8.5%!important; }
.epoint-w-80px { width:80px!important; }
.epoint-w-85pct { width:85%!important; }
.epoint-w-8pct { width:8%!important; }
.epoint-w-90pct { width:90%!important; }
.epoint-w-98pct { width:98%!important; }
.epoint-w-9pct { width:9%!important; }
.epoint-w-fit-content { width:fit-content!important; }
.epoint-writing-vertical-rl { writing-mode:vertical-rl!important; }

/* ============================================================
   Doc. No. Data Selection modal (share_view/docno_selection_radio_v2.blade.php)
   Hand-authored component classes, not Layer 2 auto-generated atomics -
   append/edit by hand, do not run layer2_build.py over this section.
   ============================================================ */

/* The scroll box that replaces .overflow-x-auto.overflow-y-auto.epoint-mh-250px on
   #modal-body-content. BOTH axes scroll on this ONE element (not a separate
   .table-responsive wrapper nested inside/around it) - splitting x and y across two
   nested scroll containers is what used to hide the last column under the vertical
   scrollbar, since the inner container's width didn't account for the outer one's
   scrollbar. A single overflow:auto box sizes both scrollbars against the same box,
   so a wide table scrolls sideways without ever clipping its last column. */
.ep-docsel-scroll { max-height:264px; overflow:auto; border:1px solid #dee2e6; }

/* Natural (not fixed) column widths - this partial serves reports from 3 columns to
   8+, and no fixed-width scheme keeps every header legible at every column count.
   min-width:100% still stretches a narrow table to fill the box; a wide table
   simply exceeds it and the scroll box above handles the rest. overflow-wrap keeps a
   long unbroken DATA value (e.g. "System current weighted cost") from truncating
   mid-word - headers stay nowrap since they now have room to size naturally. */
.ep-docsel-table { min-width:100%; table-layout:auto; margin-bottom:0; }
.ep-docsel-table td { overflow-wrap:break-word; }

/* only the checkbox column gets an explicit width; the data columns size to their
   own content under table-layout:auto. */
.ep-docsel-table th:first-child, .ep-docsel-table td:first-child { width:2.75rem; }

/* sticky header. Background MUST sit on the th, not the tr, or rows show through
   while scrolling. Keep .table-success/.epoint-table-success on the thead for the
   app's green treatment (var(--bs-table-bg) is what that class sets); this only
   adds the sticky behaviour on top of it. */
.ep-docsel-table thead th { position:sticky; top:0; z-index:2; background-color:var(--bs-table-bg, #169f85); color:#fff; white-space:nowrap; }

/* sortable header affordance */
.ep-docsel-sort { cursor:pointer; user-select:none; }
.ep-docsel-sort .ep-docsel-sort-icon { opacity:.45; margin-left:.25rem; }
.ep-docsel-sort.is-sorted .ep-docsel-sort-icon { opacity:.9; }
.ep-docsel-sort:focus-visible { outline:2px solid #fff; outline-offset:-2px; }

.ep-docsel-table tbody tr { cursor:pointer; }
.ep-docsel-table tbody tr.is-selected { background-color:#f0f6fc; }
.ep-docsel-table tbody tr.is-selected td:nth-child(2) { font-weight:600; }

/* the colspan "no rows match" message row (buildTable() with an empty rows array) -
   the header above it stays mounted and clickable, but this row itself isn't a record.
   table-hover's tint is applied per-cell via --bs-table-accent-bg (Bootstrap 5.3), not
   as a row background, so it's reset on the cell itself rather than fought on the row. */
.ep-docsel-table tbody tr:has(.ep-docsel-emptyrow) { cursor:default; }
.ep-docsel-emptyrow { --bs-table-accent-bg: transparent; }

/* muted em-dash for an empty numeric cell */
.ep-docsel-empty { color:#adb5bd; }

/* search match highlight */
.ep-docsel-table mark { background-color:#fff3cd; padding:0; }

.ep-docsel-selbar { background-color:#f0f6fc; }
.ep-docsel-chip .ep-docsel-chip-x { opacity:.6; cursor:pointer; }
.ep-docsel-chip .ep-docsel-chip-x:hover { opacity:1; }

.ep-docsel-search { width:280px; max-width:100%; }
.ep-docsel-nowrap { white-space:nowrap; }

/* loading skeleton bars */
.ep-skel { display:block; background-color:rgba(108,117,125,.1); }
.ep-skel-32 { height:32px; }
.ep-skel-20 { height:20px; }
.ep-skel-w-92 { width:92%; }
.ep-skel-w-96 { width:96%; }
.ep-skel-w-88 { width:88%; }

/* --- per-column filter UI (docno_selection_radio_v2.blade.php) --------- */

/* header cell layout: label+sort on the left, filter button pinned right via
   margin-left:auto on the button itself - works the same whether the column
   is left- or right-aligned, no separate flex-direction handling needed. */
.ep-docsel-th-inner { display:flex; align-items:center; gap:.35rem; }
.ep-docsel-filterbtn { margin-left:auto; flex:0 0 auto; border:0; background:transparent; color:rgba(255,255,255,.75); border-radius:3px; padding:.15rem .35rem; line-height:1; cursor:pointer; }
.ep-docsel-filterbtn:hover { background-color:rgba(255,255,255,.18); color:#fff; }
.ep-docsel-filterbtn.is-active { background-color:rgba(0,0,0,.28); color:#fff; box-shadow:inset 0 0 0 1px rgba(255,255,255,.6); }
.ep-docsel-filterbtn:focus-visible { outline:2px solid #fff; outline-offset:-2px; }

/* active-filters strip, between the toolbar and the selection bar */
.ep-docsel-filterbar { background-color:#f1f6fa; }
.ep-docsel-filterbar-label { color:#5980a6; }
.ep-docsel-filterchip .ep-docsel-filterchip-x { opacity:.6; cursor:pointer; }
.ep-docsel-filterchip .ep-docsel-filterchip-x:hover { opacity:1; }

/* the filter popover itself. position:fixed, top/left set from JS via
   .css() (exempt from style-src - see memory note on element.style being
   exempt from CSP, unlike a literal style="" attribute) so it can escape
   .ep-docsel-scroll's overflow without ever being clipped. Appended to
   <body>, outside #modal-body-content, specifically so re-rendering the
   table (every keystroke/checkbox toggle triggers a re-render) never tears
   this element down and loses focus/scroll position mid-interaction. */
.ep-docsel-filterpanel { position:fixed; width:260px; max-height:340px; overflow:auto; background:#fff; border:1px solid #cfd3d8; border-radius:4px; box-shadow:0 10px 28px rgba(20,24,28,.2); z-index:2000; padding:.75rem; font-size:.875rem; }
.ep-docsel-filterpanel-title { font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#8d949d; margin-bottom:.5rem; }
.ep-docsel-filterpanel-label { font-size:.75rem; color:#6f7680; margin-bottom:.25rem; }
.ep-docsel-filterpanel-actions { display:flex; align-items:center; justify-content:space-between; margin-top:.75rem; padding-top:.5rem; border-top:1px solid #eceef0; }
.ep-docsel-filterpanel-list { border:1px solid #eceef0; border-radius:3px; max-height:210px; overflow:auto; }
.ep-docsel-filterpanel-option { display:flex; align-items:center; gap:.5rem; padding:.4rem .5rem; border-bottom:1px solid #f2f3f4; cursor:pointer; font-size:.85rem; margin-bottom:0; }
.ep-docsel-filterpanel-option:last-child { border-bottom:0; }
.ep-docsel-filterpanel-option:hover { background-color:#f6f7f8; }
.ep-docsel-filterpanel-selectall { font-weight:600; }
.ep-docsel-filterpanel-optlabel { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ep-docsel-filterpanel-optcount { color:#8d949d; font-size:.75rem; }
