#fileLists {width: auto;color: #2a2a2a;margin: 0px 0px 0 0;text-align: justify;}#fileLists ul {list-style-type: none;margin: 10px 0 10px 10px;}#fileLists li {display:block; line-height:20px; padding: 1px 0 1px 25px;}#fileLists ul.folders li {background: url('/s_themes/img/file-icons/folder.png') 0px 3px no-repeat !important;}#fileLists ul.files li {background: url('/s_themes/img/file-icons/file.png') 0px 3px no-repeat;}#fileLists li.files-pdf {background: url('/s_themes/img/file-icons/pdf.png') 0px 3px no-repeat !important;}#fileLists li.files-swf,#fileLists li.files-fla {background: url('/s_system/s_img/fileicon-swf.gif') 0px 3px no-repeat !important;}#fileLists li.files-jpg, #fileLists li.files-jpeg {background: url('/s_themes/img/file-icons/jpg.png') 0px 3px no-repeat !important;} #fileLists li.files-png {background: url('/s_themes/img/file-icons/png.png') 0px 3px no-repeat !important;}#fileLists li.files-avi,#fileLists li.files-mpg,#fileLists li.files-mpeg,#fileLists li.files-mov,#fileLists li.files-moov,#fileLists li.files-wmv,#fileLists li.files-mp4,#fileLists li.files-rm,#fileLists li.files-asf,#fileLists li.files-divx,#fileLists li.files-ogm,#fileLists li.files-qt,#fileLists li.files-vob {background: url('/s_system/s_img/fileicon-video.gif') 0px 3px no-repeat !important;}#fileLists li.files-mp3,#fileLists li.files-acc,#fileLists li.files-wma,#fileLists li.files-ogg,#fileLists li.files-wav,#fileLists li.files-ac3,#fileLists li.files-aif,#fileLists li.files-aiff,#fileLists li.files-ram {background: url('/s_system/s_img/fileicon-audio.gif') 0px 3px no-repeat !important;}#fileLists li.files-doc,#fileLists li.files-docx,#fileLists li.files-txt,#fileLists li.files-html,#fileLists li.files- {background: url('/s_themes/img/file-icons/doc.png') 0px 3px no-repeat !important;}#fileLists li.files-xls,#fileLists li.files-XLS {background: url('/s_themes/img/file-icons/xls.png') 0px 3px no-repeat !important;}#fileLists li.files-ppt,#fileLists li.files-PPT {background: url('/s_themes/img/file-icons/ppt.png') 0px 3px no-repeat !important;}#fileLists li.files-zip,#fileLists li.files-gz,#fileLists li.files-tar,#fileLists li.files-rar,#fileLists li.files-ace,#fileLists li.files-tgz,#fileLists li.files-bz2 {background: url('/s_themes/img/file-icons/zip.png') 0px 3px no-repeat !important;}

/* Snerpill admin bar (#snerpill-admin-bar: position:fixed, top:0, 2.25rem tall)
   is injected for logged-in admins. Shift the whole page below it. Keyed on the
   bar's presence, not app.user, because the bar is gated on the admin firewall,
   not the frontend session. The 2.25rem stacks on top of the body padding the
   bundle listener adds — intentional. */
body:has(#snerpill-admin-bar) .page-wrapper {
    position: relative;
}

/* Manrope, self-hosted. The theme CSS used to @import it from Google Fonts,
   which chained a third-party request behind theme.min.css on every first
   paint. Variable font (wght 200-800); latin covers Icelandic, latin-ext the
   Polish page. Same files and unicode-ranges Google serves. */
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('/s_themes/mobile/assets/fonts/manrope/manrope-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('/s_themes/mobile/assets/fonts/manrope/manrope-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* The theme CSS still draws a dozen glyphs from the "boxicons" font in
   pseudo-elements (dropdown carets, breadcrumb divider, password toggle,
   gallery zoom, audio play/pause). This 1 KB subset carries exactly those
   code points so the theme's rules keep working without the 115 KB font.
   Regenerate after a theme update that adds glyphs:
     pyftsubset public/s_themes/mobile/assets/vendor/boxicons/fonts/boxicons.woff2 \
       --unicodes="U+EA4A,U+EA4D,U+EA50,U+EA55,U+EA57,U+EB0E,U+EBAE,U+EBBD,U+EC0D,U+EC90,U+ED3B,U+ED3F" \
       --flavor=woff2 --output-file=public/s_themes/mobile/assets/fonts/boxicons/boxicons-theme-glyphs.woff2
   font-display: block, not swap — an icon glyph has no sensible fallback. */
@font-face {
    font-family: 'boxicons';
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url('/s_themes/mobile/assets/fonts/boxicons/boxicons-theme-glyphs.woff2') format('woff2');
}

/* Icons are inline SVG via ux_icon('bx:…') instead of the boxicons font.
   Sit them on the text baseline the way the font glyphs did. */
svg.bx {
    vertical-align: -0.125em;
}

/* CMS-authored content can still carry the old <em class="bx bx-check-circle">
   markup. Draw that one icon without the font so the tag keeps working. */
:not(svg).bx.bx-check-circle {
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: -0.125em;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10s10-4.486 10-10S17.514 2 12 2m0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8s8 3.589 8 8s-3.589 8-8 8'/%3E%3Cpath fill='currentColor' d='M9.999 13.587L7.7 11.292l-1.412 1.416l3.713 3.705l6.706-6.706l-1.414-1.414z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10s10-4.486 10-10S17.514 2 12 2m0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8s8 3.589 8 8s-3.589 8-8 8'/%3E%3Cpath fill='currentColor' d='M9.999 13.587L7.7 11.292l-1.412 1.416l3.713 3.705l6.706-6.706l-1.414-1.414z'/%3E%3C/svg%3E") center / contain no-repeat;
}
