:root{--navy:#123c69;--navy2:#0b2949;--teal:#0f8b8d;--ink:#1d2939;--muted:#667085;--line:#e1e7ef;--bg:#f5f8fc;--white:#fff;--shadow:0 5px 20px #123c690d}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 Arial,Helvetica,sans-serif}button,input,select{font:inherit}button,select{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #56b4e9;outline-offset:3px}[hidden]{display:none!important}
.wrap{width:min(1200px,calc(100% - 32px));margin-inline:auto}.site-header{background:var(--navy);color:#fff;border-bottom:4px solid var(--teal)}.brand{min-height:86px;display:flex;align-items:center;gap:14px}.brand-icon{font-size:30px;background:#ffffff1c;border-radius:12px;padding:8px 12px}.brand h1{font-size:clamp(19px,3vw,25px);margin:0;line-height:1.25}.brand p{margin:3px 0 0;color:#d9e8f7;font-size:13px}
main{padding-block:30px 54px}.hero{padding:clamp(24px,5vw,40px);margin-bottom:30px;background:linear-gradient(120deg,#e7f4fa,#e8f7f2);border:1px solid #d9eae9;border-radius:18px}.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:800;color:#087b7d}.hero h2{margin:8px 0;font-size:clamp(28px,5vw,42px);line-height:1.2;color:var(--navy2)}.hero p{margin:0;color:#475467;max-width:720px}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.section-head h2{margin:0;font-size:25px;color:var(--navy2)}.section-head p{margin:4px 0 0;color:var(--muted);font-size:14px}#result-count{font-size:12px;font-weight:700;background:#eaf0f8;color:var(--navy);border-radius:20px;padding:6px 11px}
.filters{display:grid;grid-template-columns:1fr;gap:13px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:24px;box-shadow:var(--shadow)}.filters label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:#344054;min-width:0}.filters input,.filters select{width:100%;min-height:45px;border:1px solid #d0d5dd;border-radius:9px;padding:10px 12px;background:#fff;color:var(--ink)}button{min-height:44px;padding:9px 16px;border-radius:9px;border:1px solid #c5d4e5;background:#fff;color:var(--navy);font-weight:700}button:hover{background:#edf3fa}
.book-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:17px;align-items:stretch}.book-card{min-width:0;display:flex;flex-direction:column;padding:19px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s}.book-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #123c691c}.book-top{display:flex;justify-content:space-between;gap:8px;align-items:start}.book-icon{font-size:30px}.badge{font-size:11px;font-weight:700;padding:4px 8px;border-radius:6px;background:#edf5fc;color:#17517c}.badge.medium{background:#e5f5f3;color:#08736f}.book-title{font-size:18px;line-height:1.35;color:var(--navy2);margin:15px 0 7px;overflow-wrap:anywhere}.book-meta{font-size:13px;color:var(--muted);margin:0 0 8px}.book-code{font-size:12px;color:#475467;overflow-wrap:anywhere;margin-bottom:16px}.book-action{display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:10px 12px;margin-top:auto;background:var(--navy);color:white;text-decoration:none;border-radius:9px;font-weight:700;font-size:14px}.book-action:hover{background:var(--teal);color:white}
.state{padding:42px 18px;text-align:center;background:#fff;border:1px dashed #cbd5e1;border-radius:14px;color:var(--muted)}.state h3{margin:8px 0;color:var(--navy2)}.state p{font-size:14px}.spinner{display:inline-block;width:28px;height:28px;border:3px solid #dce7f0;border-top-color:var(--teal);border-radius:50%;animation:spin .7s linear infinite}.source-note{margin-top:28px;color:var(--muted);font-size:12px}footer{background:var(--navy2);color:#dbe6f2;padding:22px 0;text-align:center;font-size:13px}
@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:620px){.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.search{grid-column:span 2}}@media(min-width:920px){.filters{grid-template-columns:.8fr .9fr 1.8fr auto}.search{grid-column:auto}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
