:root{--ink:#22342d;--muted:#64756d;--cream:#fcfaf5;--paper:#fffefa;--sage:#d7e7d5;--sage2:#edf6eb;--forest:#3f7258;--forest-dark:#174a37;--sky:#e5f0fa;--peach:#f9e7db;--lav:#eeeafa;--line:#dfe4db;--danger:#b8554d;--gold:#bf8b3f;--shadow:0 16px 40px rgba(23,74,55,.11);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:linear-gradient(135deg,#f7faf6,#fffdf8 55%,#f5f8f4);min-height:100vh}a{text-decoration:none;color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:265px;padding:24px 16px;background:rgba(255,254,250,.91);border-right:1px solid var(--line);position:fixed;height:100vh;display:flex;flex-direction:column;backdrop-filter:blur(16px);z-index:4}.brand{display:flex;gap:12px;align-items:center;padding:6px 8px 20px}.brand-mark{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#5f806c,#365646);color:#fff;font-size:21px;font-weight:800;box-shadow:var(--shadow)}.brand b,.brand small,.profile b,.profile small{display:block}.brand b{letter-spacing:.06em;text-transform:uppercase;font-size:18px}.brand small,.profile small{font-size:11px;color:var(--muted);margin-top:3px}.profile{display:flex;gap:10px;align-items:center;padding:12px;margin:0 4px 18px;border:1px solid var(--line);border-radius:16px;background:#fff}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--sage2);font-size:19px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{padding:11px 14px;border-radius:12px;color:#536159;font-size:13px;transition:.2s}.sidebar nav a:hover{background:var(--sage2);color:var(--forest-dark);transform:translateX(2px)}.side-bottom{margin-top:auto;padding:12px;color:var(--muted);display:grid;gap:12px;font-size:13px}.side-bottom a{color:var(--danger)}.side-illustration{height:70px;position:relative;border-radius:18px;background:linear-gradient(135deg,#f1f6ee,#fff8ee);overflow:hidden;display:flex;align-items:end;justify-content:center;gap:12px;font-size:30px;border:1px solid var(--line)}.side-illustration span:first-child{filter:drop-shadow(0 6px 8px rgba(0,0,0,.08))}.main{margin-left:265px;width:calc(100% - 265px);padding:28px 36px 50px}.botanical-shell{position:relative}.botanical-shell:before,.botanical-shell:after{content:"";position:absolute;pointer-events:none;width:150px;height:150px;opacity:.22;background:radial-gradient(circle at 25% 30%,#b9d2b9 0 6px,transparent 7px),radial-gradient(circle at 60% 25%,#d6c69d 0 5px,transparent 6px),radial-gradient(circle at 70% 70%,#9eb9a2 0 7px,transparent 8px);filter:blur(.2px);z-index:0}.botanical-shell:before{right:2%;top:7%}.botanical-shell:after{left:1%;bottom:3%}.botanical-shell>*{position:relative;z-index:1}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:.16em;color:var(--muted);font-weight:800;margin:0 0 5px}.topbar h1{font-size:28px;margin:0}.top-actions{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:13px}.top-plant{font-size:22px}.btn,.mini{border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:12px;padding:11px 15px;background:var(--forest-dark);color:#fff;font-weight:700;font-size:13px;transition:transform .2s,box-shadow .2s}.btn:hover,.mini:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(47,81,64,.12)}.btn-soft{background:var(--sky);color:#365b6e}.btn-warm{background:var(--peach);color:#875f45}.btn-danger{background:#fff0ef;color:var(--danger)}.card{background:rgba(255,255,255,.88);border:1px solid rgba(231,229,220,.92);border-radius:21px;padding:20px;box-shadow:var(--shadow)}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,1fr)}.stat{background:rgba(255,255,255,.84);padding:19px;border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow);position:relative;overflow:hidden}.stat:after{content:"✦";position:absolute;right:16px;top:12px;color:#cbb780;opacity:.7}.stat:nth-child(2){background:#f2f7f0}.stat:nth-child(3){background:#f3f2fa}.stat:nth-child(4){background:#fff7ef}.stat:nth-child(5){background:#eef5f7}.stat h3{font-size:12px;color:var(--muted);margin:0 0 10px}.stat strong{font-size:29px}.two-col{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:20px}.section-title{margin:0 0 16px;font-size:17px}.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.toolbar form{display:flex;gap:8px;flex:1}.toolbar input{max-width:460px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);background:#fffefa;border-radius:11px;font:inherit;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#a5c1aa;box-shadow:0 0 0 3px rgba(165,193,170,.2)}label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#526058}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-grid .full{grid-column:1/-1}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:10px;border-bottom:1px solid var(--line)}td{padding:12px 10px;border-bottom:1px solid #f1eee8;vertical-align:top}.actions{display:flex;flex-wrap:wrap;gap:6px}.mini{padding:7px 9px;border-radius:8px;font-size:11px;background:var(--sage2);color:var(--forest-dark)}.mini.edit{background:var(--sky);color:#35627a}.mini.print{background:#f3f0ff;color:#665a9b}.mini.danger{background:#fff0ef;color:var(--danger)}.badge{display:inline-block;padding:5px 8px;border-radius:999px;background:var(--sage2);color:var(--forest-dark);font-size:11px;font-weight:700}.badge.warn{background:#fff3e4;color:#9b6335}.badge.danger{background:#fff0ef;color:var(--danger)}.flash{padding:13px 16px;border-radius:14px;margin-bottom:18px;font-size:13px}.flash.success{background:var(--sage2);color:#35614b}.flash.error{background:#fff0ef;color:#a34d49}.public-shell{min-height:100vh}.public-nav{max-width:1180px;margin:auto;padding:20px 28px;display:flex;justify-content:space-between;align-items:center}.public-brand{padding:0}.public-nav nav{display:flex;gap:20px;font-size:14px;color:var(--muted)}.public-main{max-width:1180px;margin:auto;padding:28px}.hero{padding:44px;border-radius:28px;background:linear-gradient(135deg,#edf5ed,#fbfcf8 60%,#f8f0e6);margin-bottom:24px;overflow:hidden;position:relative}.hero:after{content:"🌿  🐈";position:absolute;right:28px;bottom:20px;font-size:42px;opacity:.75}.hero h1{font-size:42px;margin:8px 0}.hero p{color:var(--muted);max-width:700px}.search-hero{display:flex;gap:10px;max-width:800px;margin-top:24px}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}.book-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}.book-cover{height:180px;background:linear-gradient(135deg,#e7f0e4,#edf3f7,#f9eee3);padding:20px;display:flex;align-items:end;position:relative}.book-cover:after{content:"🌿";position:absolute;right:15px;top:14px;font-size:24px;opacity:.7}.book-cover span{font-size:10px;color:var(--muted)}.book-info{padding:16px}.book-info h3{margin:0 0 7px;font-size:16px}.book-info p{margin:4px 0;color:var(--muted);font-size:12px}.public-footer{text-align:center;padding:35px;color:var(--muted);font-size:12px}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(440px,100%);background:#fffdf8;border:1px solid var(--line);border-radius:26px;padding:34px;box-shadow:var(--shadow)}.login-card h1{margin:20px 0 6px}.login-card p{color:var(--muted);font-size:13px}.login-card form{display:grid;gap:14px;margin-top:20px}.empty{padding:35px;text-align:center;color:var(--muted)}.kpi-note{font-size:11px;color:var(--muted);margin-top:6px}.print-sheet{max-width:900px;margin:30px auto;background:#fff;padding:30px}.member-card{width:86mm;height:54mm;border:1px solid #b8c9bb;border-radius:14px;padding:14px;background:linear-gradient(135deg,#f7faf4,#eef4ee 56%,#e7efe8);display:grid;grid-template-columns:48mm 1fr;gap:12px;position:relative;overflow:hidden;box-shadow:0 10px 28px rgba(47,81,64,.12)}.member-card:after{content:"";position:absolute;right:-20px;bottom:-35px;width:120px;height:120px;border-radius:50%;border:18px solid rgba(91,128,103,.13)}.member-card-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(73,107,89,.16);padding-bottom:6px;position:relative;z-index:1}.member-card-head b{letter-spacing:.12em;font-size:10px}.member-card-head span{font-size:9px;color:var(--muted)}.member-photo{background:linear-gradient(135deg,#e5efe4,#f6f1e8);border:1px solid #d5e0d5;border-radius:11px;display:grid;place-items:center;font-size:32px;color:var(--forest-dark);min-height:52mm;position:relative;z-index:1}.member-card-info{position:relative;z-index:1}.member-card-info h2{font-size:18px;margin:3px 0 7px}.member-card-info p{margin:4px 0;font-size:10px}.member-type{color:var(--forest);font-weight:800}.member-barcode{margin-top:8px;padding:7px;background:#fff;border:1px solid #dfe6df;border-radius:7px;text-align:center;font-family:monospace;font-size:14px;letter-spacing:2px}.label{border:1px dashed #999;padding:8px;width:70mm;height:38mm;display:inline-grid;margin:6px;font-size:11px}.barcode{display:block;margin-top:8px;height:38px;width:100%}.report-actions{display:flex;gap:8px;flex-wrap:wrap}.hint{font-size:11px;color:var(--muted)}.animal-note{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#f2f7ef,#fff9f0);border:1px solid var(--line);border-radius:16px;padding:13px 15px;color:#536159;font-size:12px}.animal-note .icon{font-size:28px}.voice-btn{background:#eef4ee;color:var(--forest-dark)}.split-date{display:flex;gap:14px;flex-wrap:wrap}.split-date div{min-width:120px}.split-date small{display:block;color:var(--muted);margin-bottom:3px}.stat-list{display:grid;gap:9px}.stat-list .row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #f0eee7}.proc-total{font-size:24px;color:var(--forest-dark);font-weight:800}.donut{width:170px;height:170px;border-radius:50%;background:conic-gradient(var(--forest) 0 68%,#aebfae 68% 82%,#d8c69b 82% 94%,#ece8dd 94% 100%);display:grid;place-items:center;margin:8px auto}.donut>div{width:108px;height:108px;border-radius:50%;background:#fffdf8;display:grid;place-items:center;text-align:center;font-size:12px;color:var(--muted)}.donut b{display:block;font-size:23px;color:var(--ink)}.chart-bars{display:flex;align-items:end;gap:12px;height:180px;padding:15px 0 0;border-bottom:1px solid var(--line)}.chart-bars .bar{flex:1;background:linear-gradient(to top,#668773,#b8d0ba);border-radius:8px 8px 2px 2px;min-height:18px;position:relative}.chart-bars .bar span{position:absolute;bottom:-22px;left:50%;transform:translateX(-50%);font-size:9px;color:var(--muted);white-space:nowrap}.visitor-welcome{animation:fadeUp .55s ease both}.pulse-soft{animation:pulseSoft 2.4s ease-in-out infinite}@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pulseSoft{50%{box-shadow:0 0 0 8px rgba(100,140,110,.08)}}@media(max-width:1100px){.stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:980px){.sidebar{width:70px;padding:16px 9px}.brand span:not(.brand-mark),.profile>div:not(.avatar),.sidebar nav span,.side-bottom small,.side-illustration{display:none}.sidebar nav a{text-align:center}.main{margin-left:70px;width:calc(100% - 70px);padding:24px}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.sidebar{position:static;width:100%;height:auto;flex-direction:row;align-items:center}.sidebar nav,.profile,.side-bottom{display:none}.app-shell{display:block}.main{margin:0;width:100%;padding:18px}.topbar{align-items:flex-start}.stats,.two-col,.form-grid{grid-template-columns:1fr}.top-actions{display:none}.public-nav{padding:16px}.public-main{padding:16px}.hero{padding:26px}.hero h1{font-size:30px}.search-hero{flex-direction:column}.public-nav nav{gap:10px;font-size:12px}.toolbar{flex-direction:column}.toolbar form{width:100%}}@media print{body{background:#fff}.no-print,.sidebar,.topbar,.public-nav,.public-footer{display:none!important}.main{margin:0;width:100%;padding:0}.print-sheet{margin:0;box-shadow:none}.member-card{box-shadow:none}}

/* V4: stronger accents + image uploads + print-safe member card */
.brand-mark{background:linear-gradient(145deg,#4e8b68,#174a37)}
.sidebar{background:linear-gradient(180deg,#fefdf9 0%,#f3f8f0 100%)}
.sidebar nav a:hover{background:#dcebdc;color:#174a37}.btn{background:linear-gradient(135deg,#174a37,#3f7258)}.btn-soft{background:#e1eef8;color:#285b76}.btn-warm{background:#fae6d5;color:#87552f}.stat:nth-child(2){background:#e7f1e5}.stat:nth-child(3){background:#eceafa}.stat:nth-child(4){background:#fbece4}.stat:nth-child(5){background:#e6f0f8}.hero{background:linear-gradient(135deg,#e2f0e2,#fffdf7 56%,#f9eadf)}
.thumb-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid #d4e4d4;background:#edf5eb;display:block}.thumb-avatar.placeholder{display:grid;place-items:center;font-size:19px}.book-thumb{width:38px;height:54px;border-radius:7px;object-fit:cover;border:1px solid var(--line);display:block;background:#edf3ea}.book-thumb.placeholder{display:grid;place-items:center;font-size:18px}.upload-preview{display:flex;align-items:center;gap:12px;padding:10px;border:1px dashed #c8d6c7;border-radius:14px;background:#fafcf8}.upload-preview img{width:62px;height:62px;border-radius:12px;object-fit:cover}.upload-preview img.cover-preview{width:54px;height:78px;border-radius:8px}.check{display:flex;align-items:center;gap:7px!important}.check input{width:auto}.book-cover.has-image{padding:0;background:#eaf0e8}.book-cover.has-image img{width:100%;height:100%;object-fit:cover}.book-cover.has-image:after{display:none}
.member-print-page{background:#f3f4ef}.member-print-sheet{max-width:120mm;padding:18mm;background:#fff}.member-card-v4{width:85.6mm;height:54mm;box-sizing:border-box;overflow:hidden;border-radius:4.2mm;border:0.35mm solid #2e654d;background:linear-gradient(135deg,#1b513d 0 28%,#f9faf5 28% 100%);box-shadow:0 5mm 10mm rgba(20,62,46,.16);position:relative;color:#22342d}.member-card-v4:before{content:"";position:absolute;width:42mm;height:42mm;border:5mm solid rgba(74,126,93,.10);border-radius:50%;right:-17mm;bottom:-19mm}.member-card-v4-head{height:9mm;padding:2.6mm 4mm 1.8mm 4mm;display:flex;justify-content:space-between;align-items:flex-start;color:#fff;position:relative;z-index:1}.member-card-v4-head b{display:block;font-size:3.3mm;letter-spacing:.13em}.member-card-v4-head small{display:block;font-size:1.45mm;opacity:.78;letter-spacing:.08em;margin-top:.4mm}.member-card-v4-head span{font-size:1.7mm;letter-spacing:.11em;font-weight:800;padding-top:.6mm}.member-card-v4-body{height:37.2mm;padding:2.5mm 4mm 1.5mm;display:grid;grid-template-columns:23mm 1fr;gap:4mm;position:relative;z-index:1}.member-photo-v4{width:23mm;height:30.5mm;border-radius:3mm;overflow:hidden;background:linear-gradient(145deg,#dce9db,#f7f0e8);border:.35mm solid rgba(255,255,255,.55);box-shadow:0 2mm 5mm rgba(0,0,0,.12);display:grid;place-items:center;color:#315c48;font-size:9mm}.member-photo-v4 img{width:100%;height:100%;object-fit:cover}.member-details-v4 h2{font-size:4.1mm;line-height:1.05;margin:0 0 1.5mm;color:#234332;max-width:52mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-meta{display:grid;grid-template-columns:16mm 1fr;gap:1.5mm;margin:.7mm 0;font-size:1.85mm;line-height:1.15}.member-meta span{color:#68776f}.member-meta b{font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.barcode-v4{margin-top:1.8mm;width:45mm}.barcode-lines{height:5.2mm;border:1px solid #e0e5df;background:repeating-linear-gradient(90deg,#16261f 0 1px,transparent 1px 2px,#16261f 2px 4px,transparent 4px 5px,#16261f 5px 6px,transparent 6px 8px,#16261f 8px 10px,transparent 10px 11px,#16261f 11px 12px,transparent 12px 14px);border-radius:1mm}.barcode-v4 strong{display:block;text-align:center;font-size:1.8mm;letter-spacing:.15em;margin-top:.5mm}.member-card-v4-foot{height:7.8mm;padding:1.5mm 4mm;display:flex;justify-content:space-between;align-items:flex-end;position:relative;z-index:1;font-size:1.65mm;color:#68776f;border-top:.25mm solid rgba(55,91,70,.12)}
@media print{@page{size:85.6mm 54mm;margin:0}.member-print-page{background:#fff!important}.member-print-sheet{width:85.6mm!important;height:54mm!important;padding:0!important;margin:0!important;max-width:none!important}.member-card-v4{margin:0!important;width:85.6mm!important;height:54mm!important;box-shadow:none!important;border-radius:0!important}.hint.no-print{display:none!important}}


/* V5: interactive OPAC + library identity */
.logo-image{padding:0!important;overflow:hidden;background:#fff!important;border:1px solid var(--line)!important}
.logo-image img{width:100%;height:100%;object-fit:contain;display:block}
.profile-admin-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);gap:20px}
.profile-preview-card{position:sticky;top:24px;height:max-content;background:linear-gradient(160deg,#fffefa,#edf5ed)}
.profile-preview-brand{display:flex;gap:14px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);margin-bottom:18px}
.profile-logo-preview{width:74px;height:74px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(145deg,#4e8b68,#174a37);color:#fff;font-size:26px;overflow:hidden;flex:0 0 auto}
.profile-logo-preview img{width:100%;height:100%;object-fit:contain;background:#fff}
.profile-preview-brand h2{margin:0;font-size:22px}.profile-preview-brand p{margin:5px 0 0;color:var(--muted)}
.preview-list{display:grid;gap:14px;margin-top:20px}.preview-list div{display:grid;gap:4px}.preview-list b{font-size:12px}.preview-list span{font-size:13px;color:var(--muted)}
.library-profile-hero{display:grid;grid-template-columns:180px minmax(0,1fr);gap:34px;align-items:center;padding:54px;border:1px solid var(--line);border-radius:30px;background:linear-gradient(135deg,#e5f0e3,#fffdf8 58%,#f6eadf);box-shadow:var(--shadow);position:relative;overflow:hidden}
.library-profile-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;border:35px solid rgba(63,114,88,.08);right:-120px;bottom:-150px}
.library-hero-logo{width:160px;height:160px;border-radius:42px;display:grid;place-items:center;background:linear-gradient(145deg,#4e8b68,#174a37);color:#fff;font-size:56px;box-shadow:0 18px 40px rgba(23,74,55,.18);position:relative;z-index:1;overflow:hidden}
.library-hero-logo img{width:100%;height:100%;object-fit:contain;background:#fff}
.library-profile-hero h1{font-size:42px;margin:0 0 6px}.library-tagline{font-size:18px;font-weight:700;color:var(--forest);margin:0 0 18px}.library-description{line-height:1.8;color:#526058;max-width:760px}
.profile-contact-row{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.profile-contact-row span{background:rgba(255,255,255,.7);border:1px solid var(--line);padding:9px 12px;border-radius:999px;font-size:13px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.profile-value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}.profile-value-grid .card{min-height:190px}.value-icon{font-size:30px}.profile-value-grid h3{margin:12px 0 6px}.profile-value-grid p{color:var(--muted);line-height:1.65;margin:0}
.opac-hero{display:flex;flex-wrap:wrap;justify-content:space-between;gap:22px}.opac-hero>div:first-child{max-width:700px}.opac-hero-actions{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}.opac-result-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:24px 0 14px}.opac-result-head h2{margin:0;font-size:22px}
.interactive-book-card{display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}.interactive-book-card:hover{transform:translateY(-5px);border-color:#bfd2bf;box-shadow:0 18px 40px rgba(23,74,55,.15)}.book-card-main{display:flex;flex-direction:column;gap:12px;flex:1}.book-card-actions{display:flex;gap:8px;padding-top:12px;margin-top:auto;border-top:1px solid #edf0ea}.favorite-btn.is-favorite{background:#f9e7db;color:#a04f46}.favorite-btn{border:0;cursor:pointer}
.reading-list-panel{position:fixed;right:24px;bottom:24px;width:min(410px,calc(100vw - 32px));max-height:70vh;overflow:auto;background:#fffefa;border:1px solid var(--line);box-shadow:0 22px 60px rgba(23,74,55,.22);border-radius:22px;padding:18px;z-index:20}.reading-list-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.reading-list-head h2{margin:0;font-size:20px}.reading-list-items{display:grid;gap:8px;margin:14px 0}.reading-list-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;border-radius:13px;background:#f5f8f3}.reading-list-item a{font-weight:700}.reading-list-item button{border:0;background:#fff0ef;color:var(--danger);border-radius:9px;padding:6px 9px;cursor:pointer}
.book-detail-layout{display:grid;grid-template-columns:minmax(260px,.55fr) minmax(0,1.45fr);gap:22px}.book-detail-cover-card{height:max-content;position:sticky;top:24px}.cover-zoom{display:block;width:100%;border:0;background:transparent;padding:0;cursor:zoom-in}.cover-zoom img{width:100%;max-height:560px;object-fit:contain;border-radius:16px;background:#edf3ea;display:block}.cover-zoom span{display:block;padding:10px;font-size:12px;color:var(--muted)}.detail-cover-placeholder{min-height:420px;border-radius:16px;display:grid;place-items:center;align-content:center;gap:18px;padding:30px;background:linear-gradient(145deg,#d8e8d5,#f5ecdf);color:#315c48;text-align:center}.detail-cover-placeholder span{font-size:32px;font-weight:800;letter-spacing:.1em}.detail-cover-placeholder small{font-size:16px;font-weight:700}.detail-availability{display:grid;gap:10px;padding-top:16px}.detail-top{display:flex;justify-content:space-between;gap:18px}.book-detail-info h1{font-size:34px;line-height:1.12;margin:10px 0}.book-author{font-size:16px;color:var(--muted);margin:0}.detail-actions{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.book-description{margin:24px 0;padding:18px;border-radius:16px;background:#f7faf6}.book-description h3{margin:0 0 8px}.book-description p{margin:0;line-height:1.8;color:#526058}.metadata-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metadata-grid>div{padding:13px;border:1px solid var(--line);border-radius:13px;background:#fffefa;display:grid;gap:5px}.metadata-grid span{font-size:11px;color:var(--muted)}.metadata-grid b{font-size:13px}.detail-note{display:flex;gap:10px;align-items:flex-start;padding:14px 0;margin-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1.6}.detail-note span{font-size:22px}.detail-note p{margin:0}.similar-section{margin-top:26px}.book-grid.compact .book-cover{height:160px}
.cover-modal{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:28px}.cover-modal.is-open{display:grid}.cover-modal[hidden]{display:none!important}.cover-modal-backdrop{position:absolute;inset:0;background:rgba(14,32,23,.72);backdrop-filter:blur(5px)}.cover-modal-content{position:relative;z-index:1;max-width:min(560px,90vw);max-height:86vh}.cover-modal-content img{max-width:100%;max-height:80vh;display:none;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.35)}.cover-modal-content img.is-ready{display:block}.cover-modal-loading{display:none;padding:18px 22px;border-radius:14px;background:#fff;color:#315c48;box-shadow:0 20px 50px rgba(0,0,0,.2);font-weight:700}.cover-modal.is-loading .cover-modal-loading{display:block}.cover-modal-close{position:absolute;right:-12px;top:-12px;width:38px;height:38px;border-radius:50%;border:0;background:#fff;color:#22342d;font-size:24px;cursor:pointer;z-index:2}.book-cover.has-image img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}
.member-card-brand{display:flex;align-items:center;gap:1.6mm}.member-card-brand img{width:7mm;height:7mm;object-fit:contain;background:#fff;border-radius:1.2mm;padding:.5mm}
@media(max-width:980px){.profile-admin-grid,.book-detail-layout{grid-template-columns:1fr}.profile-preview-card,.book-detail-cover-card{position:static}.library-profile-hero{grid-template-columns:1fr;padding:30px}.library-hero-logo{width:120px;height:120px;border-radius:32px}.profile-value-grid{grid-template-columns:1fr}.metadata-grid{grid-template-columns:1fr}.detail-top{flex-direction:column}.opac-result-head{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.library-profile-hero h1{font-size:32px}.book-detail-info h1{font-size:27px}.opac-hero-actions,.detail-actions{width:100%}.opac-hero-actions .btn,.detail-actions .btn{flex:1}.reading-list-panel{right:16px;bottom:16px}.member-card-brand img{display:none}}


/* ==============================
   ZONA LIBRARY V6 — CREATIVE PRINT & VISUAL UPGRADE
   ============================== */
:root{--forest:#276b4c;--forest-dark:#123b2d;--jade:#16805b;--teal:#1f7180;--amber:#d9902f;--coral:#cf6b57;--violet:#7656a7;--ink:#20342c;--glow:0 20px 48px rgba(18,59,45,.14)}
body{background:radial-gradient(circle at 12% 8%,rgba(53,139,99,.16),transparent 24%),radial-gradient(circle at 90% 20%,rgba(70,126,170,.13),transparent 26%),linear-gradient(135deg,#f7faf4,#fffaf2 52%,#f3f8f5)}
.sidebar{background:linear-gradient(180deg,#123b2d 0%,#184d39 55%,#0f3327 100%);border-right:0;color:#edf7ef;box-shadow:18px 0 50px rgba(12,42,31,.12)}
.sidebar:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 10% 5%,rgba(255,209,133,.18),transparent 23%),radial-gradient(circle at 100% 95%,rgba(86,177,132,.22),transparent 30%);pointer-events:none}
.sidebar>*{position:relative;z-index:1}.sidebar .brand b,.sidebar .brand small,.sidebar .profile b,.sidebar .profile small{color:#f4f8f1}.sidebar .profile{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.13)}.sidebar .avatar{background:linear-gradient(135deg,#e7b965,#e9e3bd);color:#123b2d}.sidebar nav a{color:#dce9df}.sidebar nav a:hover{background:linear-gradient(90deg,rgba(102,180,131,.32),rgba(255,255,255,.08));color:#fff}.side-bottom{color:#c4d8ca}.side-bottom a{color:#ffd6cb}.side-illustration{background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(244,187,91,.13));border-color:rgba(255,255,255,.12)}
.brand-mark{background:linear-gradient(135deg,#2e9568,#c6923f);box-shadow:0 12px 30px rgba(0,0,0,.2)}
.btn{background:linear-gradient(135deg,var(--forest-dark),var(--jade));box-shadow:0 10px 22px rgba(18,59,45,.18)}.btn-soft{background:linear-gradient(135deg,#d9ecf7,#eef6ff);color:#235b70}.btn-warm{background:linear-gradient(135deg,#ffd8bb,#f2b88f);color:#7a402b}.card,.stat{box-shadow:var(--glow)}.card{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(250,253,248,.86))}.stat:nth-child(1){background:linear-gradient(135deg,#edf8ef,#cfe9d5)}.stat:nth-child(2){background:linear-gradient(135deg,#edf4fb,#cfe1f4)}.stat:nth-child(3){background:linear-gradient(135deg,#fff7e9,#f9dfac)}.stat:nth-child(4){background:linear-gradient(135deg,#f6effc,#ddd0f1)}.stat:nth-child(5){background:linear-gradient(135deg,#fff0ec,#f4c9c0)}
.collection-intro{display:flex;justify-content:space-between;align-items:center;gap:18px;overflow:hidden;background:linear-gradient(120deg,#e7f4e7 0%,#fffaf1 52%,#e4eff8 100%);position:relative}.collection-intro:after{content:"";position:absolute;width:210px;height:210px;border:24px solid rgba(39,107,76,.08);border-radius:50%;right:-70px;top:-110px}.collection-intro h2{margin:4px 0 7px}.collection-intro p{margin:0;color:var(--muted);max-width:680px}.collection-intro-art{display:flex;gap:10px;font-size:32px;filter:drop-shadow(0 10px 10px rgba(0,0,0,.08));position:relative;z-index:1}.form-section-title{font-size:13px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;padding:10px 12px;border-radius:12px;background:linear-gradient(90deg,#eaf5e9,#f7efe2);color:#28543f;border-left:4px solid #2e9568}
.flash{box-shadow:0 10px 25px rgba(18,59,45,.12)}.flash-pop{animation:flashPop .35s ease both}@keyframes flashPop{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}

/* Kartu anggota: satu desain, satu ukuran, preview = print */
.member-print-page{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 0,#e8f3e7,transparent 48%),#f4f7f2;display:grid;justify-items:center;align-content:start;padding:24px;gap:16px}.print-toolbar{width:min(900px,100%);display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;padding:12px 16px;border:1px solid var(--line);background:#fffefa;border-radius:16px;box-shadow:var(--glow);font-size:12px;color:var(--muted)}
.member-card-v6{width:85.6mm;height:54mm;display:grid;grid-template-columns:26mm 1fr;overflow:hidden;border-radius:3.4mm;background:#fffdf8;box-shadow:0 12px 32px rgba(18,59,45,.22);border:.28mm solid rgba(18,59,45,.15);color:#20342c;print-color-adjust:exact;-webkit-print-color-adjust:exact}.member-card-v6-side{position:relative;padding:4.2mm 3mm;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5mm;color:#fff;background:linear-gradient(160deg,#0e3a2b,#276b4c 58%,#4c8d67);overflow:hidden}.member-card-v6-side:after{content:"";position:absolute;width:28mm;height:28mm;border:4mm solid rgba(255,255,255,.08);border-radius:50%;bottom:-13mm;right:-9mm}.member-card-v6-logo{width:12mm;height:12mm;border-radius:4mm;display:grid;place-items:center;overflow:hidden;background:rgba(255,255,255,.15);border:.4mm solid rgba(255,255,255,.55);font-size:6mm;position:relative;z-index:1}.member-card-v6-logo img{width:100%;height:100%;object-fit:contain;background:#fff}.member-card-v6-side>b{font-size:2.5mm;line-height:1.05;letter-spacing:.13em;position:relative;z-index:1}.member-card-v6-side small{font-size:1.5mm;opacity:.85;position:relative;z-index:1}.member-card-v6-leaves{margin-top:auto;font-size:7mm;position:relative;z-index:1}
.member-card-v6-main{padding:3.3mm 4mm 2.8mm;display:flex;flex-direction:column;background:linear-gradient(135deg,#fffdf8,#f4f7f1);position:relative;overflow:hidden}.member-card-v6-main:after{content:"";position:absolute;width:30mm;height:30mm;background:radial-gradient(circle,rgba(39,107,76,.08) 0 2px,transparent 3px);right:-9mm;bottom:-11mm;border-radius:50%}.member-card-v6-top{display:flex;justify-content:space-between;align-items:center;font-size:1.8mm;letter-spacing:.13em;font-weight:900;color:#486052;position:relative;z-index:1}.member-status-dot{font-size:1.6mm;letter-spacing:0;padding:1mm 1.6mm;border-radius:99px;background:#e7f3e8;color:#286645}.member-status-dot.nonaktif{background:#fff0e9;color:#a95645}.member-card-v6-content{display:grid;grid-template-columns:22mm 1fr;gap:3.5mm;align-items:center;flex:1;position:relative;z-index:1}.member-photo-v6{width:22mm;height:28mm;border-radius:3mm;overflow:hidden;background:linear-gradient(135deg,#d6e7d5,#f5e7d7);display:grid;place-items:center;font-size:8mm;border:.45mm solid #fff;box-shadow:0 2.4mm 5mm rgba(18,59,45,.12)}.member-photo-v6 img{width:100%;height:100%;object-fit:cover}.member-details-v6 h2{margin:0 0 .7mm;font-size:4mm;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-details-v6 p{margin:0 0 1.4mm;color:#397355;font-size:2mm;font-weight:800}.member-info-line{display:grid;grid-template-columns:15mm 1fr;gap:1.4mm;font-size:1.75mm;margin:.65mm 0}.member-info-line span{color:#728078}.member-info-line b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.barcode-v6{width:48mm;position:relative;z-index:1}.barcode-lines{height:5.5mm;background:repeating-linear-gradient(90deg,#14271e 0 .45mm,transparent .45mm .9mm,#14271e .9mm 1.8mm,transparent 1.8mm 2.2mm,#14271e 2.2mm 2.6mm,transparent 2.6mm 3.3mm);border:.2mm solid #d9e0d9}.barcode-v6 strong{display:block;text-align:center;font-size:1.75mm;letter-spacing:.16em;margin-top:.6mm}

/* Label dan barcode dengan ukuran fisik tetap */
.label-print-page,.barcode-print-page,.catalog-print-page{margin:0;background:#f4f7f2;padding:22px}.label-sheet,.barcode-sheet{display:flex;flex-wrap:wrap;gap:4mm;max-width:210mm;margin:0 auto;background:#fff;padding:8mm;box-shadow:var(--glow)}.book-label-v6{width:70mm;height:38mm;box-sizing:border-box;overflow:hidden;padding:3.2mm;border:.25mm dashed #81978a;border-radius:2mm;background:linear-gradient(135deg,#fffef9,#edf6ec);display:flex;flex-direction:column;gap:1mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}.label-brand{font-size:2.1mm;font-weight:900;color:#1e5d43;letter-spacing:.08em}.label-call{font-size:5.2mm;font-weight:900;line-height:1}.label-author,.label-title{font-size:2mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-code{margin-top:auto;font-size:2.2mm;font-weight:900}.label-shelf{font-size:1.8mm;color:#64756d}.book-barcode-v6{width:70mm;height:30mm;box-sizing:border-box;padding:2.8mm;border:.25mm dashed #81978a;border-radius:2mm;background:#fffefa;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto auto;gap:1mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}.barcode-brand{font-size:1.8mm;font-weight:900;color:#1e5d43;letter-spacing:.12em}.barcode-v6-bars{height:11mm;position:relative;border:.15mm solid #e1e5df;background:#fff}.barcode-v6-bars i{position:absolute;top:0;bottom:0;background:#101712}.book-barcode-v6 strong{text-align:center;font-size:1.8mm;letter-spacing:.12em}.book-barcode-v6 small{font-size:1.55mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#64756d}

/* Kartu katalog */
.catalog-sheet{width:210mm;min-height:297mm;margin:0 auto;background:#fff;padding:12mm;display:flex;align-items:flex-start;justify-content:center;box-shadow:var(--glow)}.catalog-card-v6{width:75mm;height:125mm;box-sizing:border-box;padding:6mm;border:.35mm solid #2d654d;background:linear-gradient(145deg,#fffef9,#f2f6ef);position:relative;display:flex;flex-direction:column;print-color-adjust:exact;-webkit-print-color-adjust:exact}.catalog-card-v6:after{content:"🌿";position:absolute;right:5mm;bottom:6mm;font-size:8mm;opacity:.18}.catalog-card-head{display:grid;grid-template-columns:10mm 1fr auto;align-items:center;gap:2mm;padding-bottom:2mm;border-bottom:.25mm solid #a8bcad;font-size:2mm;color:#315f48}.catalog-card-head img{width:8mm;height:8mm;object-fit:contain}.catalog-card-head b{font-size:2.2mm;letter-spacing:.08em}.catalog-card-head span{font-family:monospace}.catalog-classification{font-size:7mm;font-weight:900;color:#173f30;margin:5mm 0 3mm}.catalog-entry h1{font-size:3.4mm;line-height:1.25;margin:0 0 2mm}.catalog-entry p{font-size:2.35mm;line-height:1.55;margin:1.4mm 0}.catalog-meta{margin-top:auto;border-top:.25mm solid #b8c9bb;padding-top:2.5mm;display:grid;gap:1.2mm;font-size:1.9mm;color:#596a61}.catalog-card-foot{text-align:center;font-size:1.7mm;color:#7a877f;margin-top:3mm}

@media print{.no-print,.print-toolbar{display:none!important}body.member-print-page,body.label-print-page,body.barcode-print-page,body.catalog-print-page{padding:0!important;margin:0!important;background:#fff!important}.member-card-v6{width:85.6mm!important;height:54mm!important;margin:0!important;border-radius:0!important;box-shadow:none!important}.member-print-page{display:block!important;min-height:0!important}.label-sheet{padding:0!important;gap:0!important;box-shadow:none!important;max-width:none!important}.book-label-v6{margin:0!important}.barcode-sheet{padding:0!important;gap:0!important;box-shadow:none!important;max-width:none!important}.book-barcode-v6{margin:0!important}.catalog-sheet{width:210mm!important;min-height:297mm!important;padding:12mm!important;box-shadow:none!important}.catalog-card-v6{break-inside:avoid}}
@page{margin:0}


/* v7: quick actions and stronger creative gradients */
.quick-actions-v7{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.quick-action{position:relative;overflow:hidden;min-height:118px;padding:18px;border-radius:18px;color:#fff;text-decoration:none;display:flex;flex-direction:column;gap:5px;box-shadow:0 14px 28px rgba(24,62,48,.14);transition:transform .2s ease,box-shadow .2s ease}
.quick-action:before{content:'';position:absolute;width:120px;height:120px;border-radius:50%;right:-38px;top:-52px;background:rgba(255,255,255,.16)}
.quick-action:hover{transform:translateY(-4px);box-shadow:0 18px 34px rgba(24,62,48,.2)}
.quick-action span{font-size:24px;position:relative}.quick-action b,.quick-action small{position:relative}.quick-action small{opacity:.86;line-height:1.35}
.qa-member{background:linear-gradient(135deg,#174a37,#2f8063)}
.qa-book{background:linear-gradient(135deg,#2b628c,#4d9fc1)}
.qa-loan{background:linear-gradient(135deg,#8a4f35,#d07b55)}
.qa-report{background:linear-gradient(135deg,#66508f,#9b79c6)}
@media(max-width:760px){.quick-actions-v7{grid-template-columns:1fr}.top-actions{flex-wrap:wrap}.top-actions .btn{font-size:13px}}

/* v8: riwayat dan label punggung buku */
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.history-filter{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.history-filter input{min-width:150px}
.spine-label-sheet{display:grid;grid-template-columns:repeat(6,25mm);gap:4mm;justify-content:center;align-content:start}.book-label-v7{width:25mm;height:45mm;box-sizing:border-box;overflow:hidden;padding:2.2mm 1.6mm;border:.25mm solid #8aa08f;border-radius:2.5mm;background:linear-gradient(180deg,#f8fffa 0%,#e4f1e8 52%,#fffaf1 100%);display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;gap:1.4mm;print-color-adjust:exact;-webkit-print-color-adjust:exact;box-shadow:0 2mm 4mm rgba(32,72,51,.08)}.spine-brand{font-size:1.55mm;font-weight:900;letter-spacing:.08em;color:#195a3c}.spine-call{font-size:4.8mm;line-height:1;font-weight:950;color:#163d2c;word-break:break-word}.spine-divider{width:12mm;height:.35mm;border-radius:1mm;background:linear-gradient(90deg,#1c6b49,#d8a83f)}.spine-author,.spine-title{max-width:100%;font-size:1.75mm;line-height:1.22;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.spine-title{font-weight:800}.spine-code{margin-top:auto;font-size:1.45mm;font-weight:800;color:#56675f;word-break:break-all}
@media(max-width:900px){.spine-label-sheet{grid-template-columns:repeat(3,25mm)}.history-filter{width:100%}.history-filter input{flex:1;min-width:120px}}
@media(max-width:520px){.spine-label-sheet{grid-template-columns:repeat(2,25mm)}.history-filter{display:grid;grid-template-columns:1fr}.history-filter .btn{width:100%}}
@media print{.spine-label-sheet{padding:0!important;gap:4mm!important;display:grid!important;grid-template-columns:repeat(6,25mm)!important;justify-content:start!important;box-shadow:none!important;background:#fff!important}.book-label-v7{width:25mm!important;height:45mm!important;margin:0!important;break-inside:avoid!important;box-shadow:none!important}.label-print-page{padding:0!important;background:#fff!important}}
/* v8.1 Admin settings */
.profile-link{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.avatar-img{width:42px;height:42px;border-radius:14px;object-fit:cover;box-shadow:0 8px 18px rgba(20,70,50,.18)}
.settings-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);gap:20px}.admin-photo-wrap{display:flex;align-items:center;gap:18px;padding:14px;border:1px dashed rgba(35,102,74,.25);border-radius:18px;background:linear-gradient(135deg,rgba(240,255,246,.9),rgba(255,251,235,.9))}.admin-profile-photo{width:88px;height:88px;border-radius:24px;object-fit:cover;display:grid;place-items:center;font-size:32px;background:linear-gradient(135deg,#1d6b50,#58a47d);color:#fff}.security-card{align-self:start}.account-info{margin-top:18px;padding:14px;border-radius:16px;background:linear-gradient(135deg,#edf8f0,#f8f3ff);display:flex;gap:12px;align-items:center}.account-info span{font-size:26px}.account-info small{display:block;margin-top:4px;color:#66736d}
@media(max-width:850px){.settings-grid{grid-template-columns:1fr}.top-actions{flex-wrap:wrap}.admin-photo-wrap{align-items:flex-start}.profile-link small{display:none}}
