/* Collection: orders, donations, registers, stock-take, periodicals, digital library */

.lib-offlist { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-direction: column; gap: .7rem; }
.lib-offlist li { display: flex; gap: .7rem; align-items: flex-start; color: var(--lib-ink-2); }
.lib-offlist li > svg { flex: none; margin-top: .15rem; color: var(--lib-muted); }

.lib-regfilter { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: .6rem; align-items: end; margin-bottom: .6rem; }
.lib-regfilter__q { grid-column: 1 / -1; }
.lib-regfilter .btn { white-space: nowrap; }
@media (min-width: 992px) { .lib-regfilter__q { grid-column: span 2; } }

.lib-recvrow { display: grid; grid-template-columns: minmax(0, 1fr) 6rem; gap: .8rem; align-items: center; padding: .55rem .8rem; border-radius: 14px; background: var(--lib-surface-2); }
.lib-donrow { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr) minmax(0, 1fr) 4.5rem; gap: .5rem; }
@media (max-width: 767.98px) {
  .lib-donrow { grid-template-columns: 1fr 1fr; padding: .7rem; border-radius: 14px; background: var(--lib-surface-2); }
  .lib-donrow > :first-child { grid-column: 1 / -1; }
}

.lib-bar { height: 10px; border-radius: 999px; background: var(--lib-surface-2); box-shadow: inset 0 0 0 1px var(--lib-line); overflow: hidden; }
.lib-bar > span { display: block; height: 100%; background: var(--lib-primary); border-radius: inherit; }

/* printed pages */
.lib-letter { width: 210mm; max-width: 100%; margin: 0 auto; background: #fff; color: #1b1b1b; padding: 20mm 18mm; min-height: 250mm; box-shadow: 0 8px 30px -12px rgba(0, 0, 0, .35); font-family: Georgia, "Times New Roman", serif; line-height: 1.6; }
.lib-letter header { border-bottom: 2px solid var(--lib-primary); padding-bottom: .8rem; margin-bottom: 1.4rem; }
.lib-letter__lib { font-size: 1.4rem; display: block; color: var(--lib-primary); }
.lib-letter__date { text-align: right; color: #444; }
.lib-letter__body { font-size: 1.05rem; }
.lib-letter__ref { margin-top: 2rem; color: #666; }
.lib-regprint { background: #fff; color: #111; padding: 1rem; font-size: .8rem; }
.lib-regprint h1 { font-size: 1.3rem; margin: .2rem 0; font-family: Georgia, serif; }
.lib-regprint table { width: 100%; border-collapse: collapse; }
.lib-regprint th, .lib-regprint td { border: 1px solid #bbb; padding: 3px 6px; text-align: left; vertical-align: top; }
.lib-regprint th { background: #eee; }
@media print { .lib-letter, .lib-regprint { box-shadow: none; padding: 0; min-height: 0; } }

/* stock-taking */
.lib-scanbox { position: sticky; top: 0; z-index: 5; background: var(--lib-bg); padding: .6rem 0; }
.lib-scanbox__row { display: flex; gap: .5rem; flex-wrap: wrap; }
.lib-scanbox input[type=text] { font-size: 1.4rem; padding: .75rem 1rem; flex: 1 1 14rem; min-width: 0; border-radius: 16px; }
.lib-scanstat { display: grid; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); gap: .6rem; margin: .6rem 0; }
.lib-scanstat > div { background: var(--lib-surface); box-shadow: 0 0 0 1px var(--lib-line); border-radius: 16px; padding: .6rem .8rem; }
.lib-scanstat strong { display: block; font-size: 1.6rem; font-family: var(--lib-font-serif, Georgia, serif); line-height: 1.1; }
.lib-scanstat span { font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--lib-muted); }
.lib-scanlog { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .45rem; }
.lib-scanlog li { display: flex; gap: .6rem; align-items: center; padding: .55rem .8rem; border-radius: 14px; background: var(--lib-surface); box-shadow: 0 0 0 1px var(--lib-line); animation: lib-pop .25s var(--lib-ease, ease); }
.lib-scanlog li.is-ok { box-shadow: 0 0 0 1px var(--lib-ok); }
.lib-scanlog li.is-warn { box-shadow: 0 0 0 1px var(--lib-warn); background: var(--lib-warn-soft); }
.lib-scanlog li.is-bad { box-shadow: 0 0 0 1px var(--lib-danger); background: var(--lib-danger-soft); }
.lib-scanlog .t { min-width: 0; flex: 1; }
.lib-scanlog .t small { display: block; color: var(--lib-muted); }
.lib-cam { width: 100%; max-height: 40vh; border-radius: 16px; background: #000; }
.lib-actrow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(9rem, 14rem); gap: .6rem; align-items: center; padding: .6rem .8rem; border-top: 1px solid var(--lib-line-2); }
.lib-actrow:first-child { border-top: 0; }
@media (max-width: 575.98px) { .lib-actrow { grid-template-columns: 1fr; } }
@keyframes lib-pop { from { transform: translateY(-4px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .lib-scanlog li { animation: none; } }

/* digital reader */
.lib-reader { display: flex; flex-direction: column; gap: .6rem; }
.lib-reader__bar { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.lib-reader__frame { width: 100%; height: calc(100vh - 11rem); min-height: 28rem; border: 0; border-radius: 16px; background: var(--lib-surface-2); box-shadow: 0 0 0 1px var(--lib-line); }
.lib-epub { border-radius: 16px; box-shadow: 0 0 0 1px var(--lib-line); background: var(--epub-bg, #fff); color: var(--epub-fg, #1b1b1b); padding: 1.2rem clamp(1rem, 5vw, 3.5rem); min-height: 60vh; font-family: Georgia, serif; line-height: 1.7; overflow-wrap: anywhere; }
.lib-epub[data-theme=sepia] { --epub-bg: #f4ecd8; --epub-fg: #433422; }
.lib-epub[data-theme=dark] { --epub-bg: #16181d; --epub-fg: #d8dbe0; }
.lib-epub img { max-width: 100%; height: auto; }
.lib-epub h1, .lib-epub h2, .lib-epub h3 { line-height: 1.25; }
.lib-media { width: 100%; border-radius: 16px; background: #000; max-height: 70vh; }
.lib-media--audio { background: none; }

/* newspapers and magazines */
.lib-duelist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.lib-dueitem { display: flex; gap: .8rem; align-items: center; justify-content: space-between; padding: .7rem .9rem; border-radius: 14px; background: var(--lib-surface-2); }
@media (max-width: 575.98px) { .lib-dueitem { flex-direction: column; align-items: stretch; } .lib-dueitem .btn { width: 100%; } .lib-dueitem > div:last-child { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; } .lib-dueitem form { display: contents; } }

/* reader details */
.lib-reader__bar .btn { white-space: nowrap; }
.lib-reader__bar .form-select, .lib-reader__bar .input-group { min-width: 0; }
.lib-epub { max-width: 46rem; width: 100%; margin-inline: auto; }
.lib-epub a[role=link] { color: var(--lib-primary); text-decoration: underline; cursor: pointer; }
#ep-marks li { display: flex; gap: .5rem; align-items: center; }
#ep-marks li:empty { display: none; }
.lib-bookdigital { display: flex; flex-direction: column; gap: .6rem; }
.lib-bookdigital__row { display: flex; gap: .8rem; align-items: center; justify-content: space-between; padding: .65rem .85rem; border-radius: 14px; background: var(--lib-surface-2); }
.lib-bookdigital__row small { display: block; color: var(--lib-muted); }
@media (max-width: 575.98px) { .lib-bookdigital__row { flex-direction: column; align-items: stretch; } .lib-bookdigital__row .btn { width: 100%; } }
@media (min-width: 768px) { .lib-reader__bar[role=toolbar] { position: sticky; top: 0; z-index: 6; background: var(--lib-bg); padding: .5rem 0; } }
.lib-epub, .lib-epub [id] { scroll-margin-top: 5rem; }
.lib-epub :is(h1, h2, h3, h4, h5, h6, p, li, blockquote, td, th, span, div, em, strong, small, cite) { color: inherit; }
.lib-epub[data-theme=dark] a, .lib-epub[data-theme=sepia] a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.lib-epub[data-theme=dark] { color-scheme: dark; }
