*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#f5f6ec;color:#26382f}.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:12px 4%;background:#315d48;color:#fff;box-shadow:0 2px 14px #203c2b30}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800}.brand img{width:42px;height:42px;object-fit:contain;background:#f8eaa8;border-radius:12px;padding:4px}.topbar nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.topbar nav a{color:#fff;text-decoration:none;padding:8px 12px;border-radius:9px}.topbar nav a:hover{background:#ffffff18}.page{max-width:1400px;margin:auto;padding:24px 4%}.footer{padding:28px 5%;background:#274b3b;color:#edf6df;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.card,.panel{background:#fffef7;border:1px solid #d9dfc8;border-radius:18px;padding:18px;box-shadow:0 8px 24px #314f3b12}.stat{border-left:5px solid #d7ba3d}.stat b{font-size:27px;display:block;color:#315d48}.muted{color:#718074}.btn{display:inline-block;border:0;background:#315d48;color:#fff!important;text-decoration:none;padding:10px 15px;border-radius:10px;cursor:pointer}.btn.yellow{background:#c3a42d}.btn.red{background:#a84b4b}.btn.gray{background:#66756c}.btn.small{padding:7px 10px}.actions{display:flex;gap:7px;flex-wrap:wrap}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;background:#fffef7}.table th,.table td{padding:10px;border-bottom:1px solid #e1e6d9;text-align:left;vertical-align:top}.table th{background:#eef1df}.form{display:grid;gap:12px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.form label{font-weight:650;font-size:14px}.form input,.form select,.form textarea{width:100%;padding:10px;border:1px solid #cdd6c8;border-radius:9px;background:#fff}.form textarea{min-height:90px}.flash{margin:14px auto 0;max-width:1400px;padding:12px 4%;border-radius:10px}.flash.success{background:#dcefd8;color:#245b32}.flash.error{background:#f7dddd;color:#7a2e2e}.hero-opac{min-height:560px;border-radius:26px;overflow:hidden;position:relative;background:linear-gradient(90deg,#163d2de8,#163d2d6b),url('../assets/opac-hero.jpg') center/cover;display:flex;align-items:center}.hero-opac .hero-inner{max-width:720px;padding:48px;color:#fff}.hero-opac h1{font-size:clamp(32px,5vw,64px);margin:0 0 12px}.hero-opac p{font-size:18px;line-height:1.6}.searchbox{display:flex;gap:8px;flex-wrap:wrap;background:#ffffffec;padding:12px;border-radius:16px}.searchbox input,.searchbox select{flex:1;min-width:170px;padding:12px;border:0;border-radius:10px}.book-cover{width:120px;height:170px;object-fit:cover;border-radius:10px;background:#dfe8d7}.book-cover.large{width:220px;height:310px}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.book-card{background:#fffef7;border:1px solid #d9dfc8;border-radius:16px;padding:14px}.book-card img{width:100%;height:260px;object-fit:cover;border-radius:11px}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#e9edcf;font-size:12px}.glitter{position:relative;overflow:hidden;background:linear-gradient(135deg,#f8efad,#fffef7,#dfeecf);border:2px solid #d3b52e}.glitter:after{content:"";position:absolute;inset:-100%;background:repeating-linear-gradient(45deg,transparent 0 12px,#fff8 13px 15px,transparent 16px 30px);animation:shine 5s linear infinite;pointer-events:none}.glitter>*{position:relative;z-index:1}@keyframes shine{to{transform:translate(35%,35%)}}.side-menu a{display:block;padding:10px;color:#315d48;text-decoration:none;border-bottom:1px solid #e3e7d9}.side-menu a:hover{background:#eef3dd}.cover-thumb{width:55px;height:75px;object-fit:cover;border-radius:6px}.barcode{max-width:220px}.print-area{background:#fff;padding:20px}@media print{.topbar,.footer,.no-print,.flash{display:none!important}.page{padding:0}.print-area{box-shadow:none;border:0}}