@import url('https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,500;6..72,700&family=Public+Sans:wght@400;500;600&display=swap');

:root {
  --ink: #14213d; --ink-2: #1d2f57; --green: #1f6f5c; --gold: #e9b44c; --gold-d: #d19a2e;
  --paper: #f4f6f8; --gold-text: #9a6c00; --gold-hover: #6f4d00; --line: #dfe4ea; --text: #1d2433; --muted: #5d6677;
  --bs-primary: #1f6f5c; --bs-primary-rgb: 31,111,92; --bs-link-color: #1f6f5c; --bs-link-hover-color: #14513f;
}
html { scroll-behavior: smooth; }
body { font-family: 'Public Sans', system-ui, sans-serif; color: var(--text); background: var(--green); line-height: 1.6; }
h1, h2, h3, .brand-name { font-family: 'Newsreader', Georgia, serif; font-weight: 700; letter-spacing: -.01em; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }

/* buttons */
.btn-primary { --bs-btn-bg: var(--green); --bs-btn-border-color: var(--green); --bs-btn-hover-bg: #17564a; --bs-btn-hover-border-color: #17564a; --bs-btn-active-bg: #14513f; }
.btn-outline-primary { --bs-btn-color: var(--green); --bs-btn-border-color: var(--green); --bs-btn-hover-bg: var(--green); --bs-btn-hover-border-color: var(--green); }
.btn-gold { background: var(--gold); border-color: var(--gold); color: #2a2106; font-weight: 600; }
.btn-gold:hover { background: var(--gold-d); border-color: var(--gold-d); color: #2a2106; }
.btn-outline-light-2 { border: 1px solid rgba(255,255,255,.55); color: #fff; }
.btn-outline-light-2:hover { background: #fff; color: var(--ink); }

/* header: white background, gold text */
.dl-nav { background: #fff; border-bottom: 1px solid var(--line); }
.dl-nav .brand-name { color: var(--gold-text); font-size: 1.3rem; line-height: 1.1; }
.dl-nav .nav-link { color: var(--gold-text); font-weight: 500; padding: .6rem .9rem; }
.dl-nav .nav-link:hover, .dl-nav .nav-link:focus { color: var(--gold-hover); }
.dl-nav .btn-outline-light-2, .admin-nav .btn-outline-light { color: var(--gold-text); border: 1px solid var(--gold-text); background: transparent; }
.dl-nav .btn-outline-light-2:hover, .admin-nav .btn-outline-light:hover { background: var(--gold-text); color: #fff; }
.dl-nav .navbar-toggler, .admin-nav .navbar-toggler { border-color: var(--gold-text); }
.dl-nav .navbar-toggler-icon, .admin-nav .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%239a6c00' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.alert-strip { background: #fff3d6; border-bottom: 1px solid #f0d99b; color: #5b4300; font-size: .93rem; }

/* hero */
.hero { background: #17564a; color: #fff; padding: 4.5rem 0 4rem;
  background-image: linear-gradient(180deg, rgba(20,33,61,.0), rgba(20,33,61,.0)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 2px, transparent 2px 46px); }
.hero h1 { font-size: clamp(2rem, 5vw, 3.4rem); max-width: 18ch; margin-inline: auto; }
.hero p.lead { color: rgba(255,255,255,.78); max-width: 52ch; margin-inline: auto; }
.search-box { max-width: 780px; margin: 2rem auto 0; }
.search-box .form-control, .search-box .form-select { border: 0; border-radius: 0; }
.search-box .form-select { max-width: 170px; background-color: #eef1f5; font-weight: 500; }
.search-box .input-group { box-shadow: 0 10px 30px rgba(0,0,0,.28); border-radius: .6rem; overflow: hidden; }
@media (max-width: 575.98px) {
  .search-box .input-group { flex-wrap: wrap; }
  .search-box .form-select, .search-box .form-control, .search-box .btn { max-width: 100%; width: 100%; flex: 1 1 100%; border-radius: 0 !important; }
}

/* shelves */
.shelf { display: block; background: #fff; border: 1px solid var(--line); border-radius: .75rem; padding: 1.4rem; text-decoration: none; color: inherit; height: 100%; transition: border-color .15s; }
.shelf:hover { border-color: var(--green); }
.shelf i { font-size: 2rem; color: var(--green); }
.shelf .count { font-family: 'Newsreader', serif; font-size: 1.9rem; font-weight: 700; line-height: 1; }

.section { padding: 3.2rem 0; }
.section-title { font-size: 1.7rem; margin-bottom: 1.4rem; }

/* material cards */
.mat-card { border: 1px solid var(--line); border-radius: .75rem; overflow: hidden; background: #fff; }
.mat-thumb { height: 120px; display: flex; align-items: center; justify-content: center; font-size: 3rem; position: relative; color: #fff; }
.mat-pdf .mat-thumb { background: linear-gradient(135deg, #1d2f57, #14213d); }
.mat-video .mat-thumb { background: linear-gradient(135deg, #1f6f5c, #14513f); }
.mat-audio .mat-thumb { background: linear-gradient(135deg, #b7791f, #8a5a12); }
.mat-thumb .badge { position: absolute; top: .6rem; left: .6rem; background: rgba(255,255,255,.18); font-weight: 500; }
.mat-card .card-title { font-size: 1.05rem; margin-bottom: .1rem; }

/* pricing */
.plan { background: #fff; border: 1px solid var(--line); border-radius: .75rem; padding: 1.6rem; height: 100%; }
.plan.featured { border: 2px solid var(--green); }
.plan .price { font-family: 'Newsreader', serif; font-size: 2.2rem; font-weight: 700; }
.plan ul { padding-left: 1.1rem; margin: 0; color: var(--muted); }

/* forms / cards */
.panel { background: #fff; border: 1px solid var(--line); border-radius: .75rem; padding: 1.6rem; }
.auth-wrap { max-width: 480px; margin: 2.5rem auto; }
.form-label { font-weight: 500; font-size: .92rem; }

/* viewer */
.viewer { background: #0e1424; border-radius: .75rem; overflow: hidden; position: relative; }
.viewer video { width: 100%; display: block; background: #000; }
.audio-stage { background: linear-gradient(135deg, #8a5a12, #14213d); color: #fff; padding: 2.5rem 1.5rem; text-align: center; }
.audio-stage i { font-size: 4rem; }
.audio-stage audio { width: 100%; max-width: 640px; margin-top: 1rem; }
.pdf-toolbar { background: var(--ink); color: #fff; padding: .5rem .75rem; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: center; }
.pdf-host { background: #525659; padding: 1rem; overflow: auto; text-align: center; position: relative; max-height: 80vh; }
.pdf-host canvas { background: #fff; box-shadow: 0 2px 12px rgba(0,0,0,.5); max-width: none; }
.wm { position: absolute; inset: 0; pointer-events: none; overflow: hidden; display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.16); font-size: clamp(.9rem, 2.4vw, 1.5rem); transform: rotate(-24deg); white-space: nowrap; user-select: none; text-shadow: 0 0 2px rgba(0,0,0,.25); }
.pdf-host .wm { color: rgba(0,0,0,.12); text-shadow: none; position: fixed; display: none; }
.no-select { user-select: none; -webkit-user-select: none; }
@media print { body * { display: none !important; } body::before { content: 'Printing is disabled for library materials.'; display: block; } }

/* admin */
.admin-nav { background: #fff; border-bottom: 1px solid var(--line); }
.admin-nav .brand-name { color: var(--gold-text); }
.admin-nav .nav-link { color: var(--gold-text); }
.admin-nav .nav-link:hover { color: var(--gold-hover); }
.stat { background: #fff; border: 1px solid var(--line); border-radius: .75rem; padding: 1.1rem 1.2rem; height: 100%; }
.stat .n { font-family: 'Newsreader', serif; font-size: 2rem; font-weight: 700; line-height: 1.1; }
.table > :not(caption) > * > * { vertical-align: middle; }

footer.site-footer { background: #fff; color: var(--gold-text); padding: 2rem 0; font-size: .92rem; border-top: 1px solid var(--line); }
footer.site-footer a { color: var(--gold-text); text-decoration: underline; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* ---- content on the green body: light text outside cards, dark text inside cards ---- */
main { color: #fff; }
.panel, .plan, .shelf, .mat-card, .stat { color: var(--text); }
main .text-muted { color: rgba(255,255,255,.82) !important; }
.panel .text-muted, .plan .text-muted, .shelf .text-muted, .mat-card .text-muted, .stat .text-muted { color: var(--muted) !important; }
main a:not(.btn):not(.shelf):not(.alert-link):not(.dropdown-item) { color: #fff; text-decoration: underline; }
main .panel a:not(.btn), main .plan a:not(.btn) { color: var(--bs-link-color); }
main .btn-outline-primary { --bs-btn-color: #fff; --bs-btn-border-color: #fff; --bs-btn-hover-bg: #fff; --bs-btn-hover-color: var(--green); --bs-btn-hover-border-color: #fff; --bs-btn-active-bg: #fff; --bs-btn-active-color: var(--green); }
main .panel .btn-outline-primary, main .plan .btn-outline-primary, main .mat-card .btn-outline-primary {
  --bs-btn-color: var(--green); --bs-btn-border-color: var(--green); --bs-btn-hover-bg: var(--green); --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: var(--green); --bs-btn-active-bg: var(--green); --bs-btn-active-color: #fff; }
main .btn-outline-secondary { --bs-btn-color: #fff; --bs-btn-border-color: rgba(255,255,255,.7); --bs-btn-hover-bg: #fff; --bs-btn-hover-color: var(--green); }
main .panel .btn-outline-secondary { --bs-btn-color: #5d6677; --bs-btn-border-color: #8b94a3; --bs-btn-hover-bg: #5d6677; --bs-btn-hover-color: #fff; }
main .form-text { color: rgba(255,255,255,.82); }
main .panel .form-text { color: var(--muted); }
