@import url('https://fonts.googleapis.com/css2?family=Berkshire+Swash&family=Inter:wght@400;500;600;700&display=swap');
:root{--wine:#712d38;--wine2:#8b3b49;--cream:#edddba;--bg:#f7f4ee;--card:#fffdf8;--text:#29272a;--muted:#7a7375;--line:#e8dfd2;--shadow:0 10px 30px rgba(65,39,40,.08);--radius:18px}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;background:linear-gradient(180deg,#6c2935,#54232d);color:#fff;padding:22px 14px;position:fixed;left:0;top:0;bottom:0;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:4px 10px 25px}.brand-mark{width:42px;height:42px;border-radius:14px;background:var(--cream);color:var(--wine);display:grid;place-items:center;font-family:'Berkshire Swash',cursive;font-size:26px}.brand b{display:block;font-family:'Berkshire Swash',cursive;font-size:20px;font-weight:400}.brand small{opacity:.7;font-size:10px}.nav-label{font-size:10px;letter-spacing:1.3px;opacity:.55;padding:18px 12px 7px}.nav-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;margin:3px 0;font-size:13px;color:rgba(255,255,255,.8)}.nav-link span{width:20px;text-align:center;font-size:17px}.nav-sub{padding-left:42px;font-size:12px;margin:2px 0}.nav-sub span{font-size:14px}.nav-link:hover,.nav-link.active{background:rgba(237,221,186,.16);color:#fff}.sidebar-bottom{margin-top:auto}.main{margin-left:250px;min-width:0;flex:1}.topbar{height:82px;background:rgba(255,253,248,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:10}.eyebrow{font-size:9px;letter-spacing:1.5px;color:var(--muted);margin-bottom:4px}.top-actions{display:flex;align-items:center;gap:14px}.icon-btn,.mobile-menu{border:1px solid var(--line);background:var(--card);width:38px;height:38px;border-radius:12px;cursor:pointer}.profile{display:flex;gap:9px;align-items:center}.profile small,.profile b{display:block}.profile b{font-size:12px}.profile small{font-size:10px;color:var(--muted);text-transform:capitalize}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--cream);color:var(--wine);font-weight:700}.mobile-menu{display:none}.content{padding:30px 34px 50px;max-width:1500px;margin:auto}.hero{background:linear-gradient(135deg,var(--wine),#8b3b49);color:#fff;border-radius:24px;padding:30px;display:flex;justify-content:space-between;gap:20px;box-shadow:var(--shadow);margin-bottom:22px}.hero h1{font-family:'Berkshire Swash',cursive;font-size:34px;font-weight:400;margin:0 0 8px}.hero p{margin:0;opacity:.8}.hero-art{font-size:70px;opacity:.25}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.stat{padding:20px;position:relative}.stat .label{font-size:12px;color:var(--muted)}.stat .value{font-size:29px;font-weight:700;margin-top:8px}.stat .trend{font-size:10px;color:var(--wine);margin-top:5px}.grid2{display:grid;grid-template-columns:1.4fr .9fr;gap:18px}.card{padding:20px}.card h3{margin:0 0 14px;font-size:15px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:11px;padding:10px 14px;background:var(--wine);color:#fff;font-size:12px;cursor:pointer}.btn.secondary{background:#f0e9dd;color:var(--wine)}.btn.danger{background:#a84444}.btn.small{padding:7px 10px;font-size:11px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:12px}.table th{text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.7px;background:#faf7f1}.table th,.table td{padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.table tr:hover td{background:#fffaf2}.cover{width:46px;height:62px;border-radius:7px;object-fit:cover;background:var(--cream);box-shadow:0 3px 8px rgba(0,0,0,.12)}.cover-lg{width:150px;height:205px;border-radius:14px;object-fit:cover}.badge{padding:5px 8px;border-radius:99px;background:#eee8dd;color:#6c5b5e;font-size:10px}.badge.ok{background:#e5f2e7;color:#347148}.badge.warn{background:#fff0d6;color:#9a671a}.badge.bad{background:#f8dddd;color:#9d3535}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.field label{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}.field input,.field select,.field textarea,.search{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;font:inherit;font-size:12px;outline:none}.field textarea{min-height:100px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.search:focus{border-color:var(--wine);box-shadow:0 0 0 3px rgba(113,45,56,.08)}.full{grid-column:1/-1}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.toolbar .searchbox{display:flex;gap:8px;max-width:500px;flex:1}.alert{padding:12px 15px;border-radius:12px;margin-bottom:16px;font-size:12px}.alert.success{background:#e6f3e8;color:#27633a}.alert.error{background:#fae1e1;color:#8e3333}.empty{text-align:center;padding:40px;color:var(--muted)}.book-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.book-card{padding:15px;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.book-card .cover-wrap{text-align:center}.book-card .cover{width:120px;height:165px}.book-card h3{font-size:13px;margin:12px 0 5px}.book-card p{font-size:10px;color:var(--muted);margin:3px 0}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#f1dfc0,transparent 30%),linear-gradient(135deg,#6f2936,#3f1b22);padding:20px}.login-card{width:min(900px,100%);background:var(--card);border-radius:28px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 30px 70px rgba(0,0,0,.25)}.login-brand{background:linear-gradient(160deg,var(--wine),#4f2029);color:#fff;padding:55px;display:flex;flex-direction:column;justify-content:center}.login-brand h1{font-family:'Berkshire Swash',cursive;font-weight:400;font-size:48px;margin:0}.login-brand p{opacity:.8;line-height:1.7}.login-form{padding:45px}.login-form h2{margin-top:0}.login-form .field{margin:14px 0}.print-only{display:none}.report-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.mini-stat{padding:15px;border:1px solid var(--line);border-radius:14px}.mini-stat b{font-size:22px;display:block}.mini-stat span{font-size:10px;color:var(--muted)}body.dark{--bg:#1e1a1b;--card:#292324;--text:#f2eee8;--muted:#b9acad;--line:#40383a}.dark .topbar{background:rgba(41,35,36,.9)}.dark .field input,.dark .field select,.dark .field textarea,.dark .search{background:#211d1e;color:#fff}.dark .btn.secondary{background:#3a3031;color:#f4d8b4}.dark .table th{background:#30292a}.dark .table tr:hover td{background:#302829}
@media(max-width:1000px){.sidebar{transform:translateX(-100%);transition:.2s}.menu-open .sidebar{transform:none}.main{margin-left:0}.mobile-menu{display:block}.topbar{padding:0 18px}.content{padding:22px 18px}.stats{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.book-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.login-card{grid-template-columns:1fr}.login-brand{padding:30px}.login-form{padding:30px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.book-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:1fr 1fr}.profile span:last-child{display:none}.hero{padding:22px}.hero h1{font-size:27px}}
@media print{@page{size:auto;margin:10mm}body{background:#fff!important;color:#111!important}.sidebar,.topbar,.no-print,.btn,.alert{display:none!important}.main{margin:0}.content{padding:0;max-width:none}.print-only{display:block}.print-title{font-family:'Berkshire Swash',cursive;text-align:center;font-size:24px;margin-bottom:4px}.print-sub{text-align:center;font-size:10px;color:#555;margin-bottom:20px}.table{font-size:10px}.table th,.table td{padding:7px;border:1px solid #ddd}.card{box-shadow:none;border:0;padding:0}.report-print{display:block!important}.member-card-print{width:86mm;height:54mm;border:1px solid #777;border-radius:8px;padding:12px;position:relative}.label-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:start}.book-label{border:1px solid #222;padding:8px;height:45mm;font-size:9px}.barcode-svg{max-width:100%;height:40px}.page-break{page-break-after:always}}
/* Adel Library refinements */
.sidebar nav{overflow-y:auto;scroll-behavior:auto;overflow-x:hidden;flex:1;min-height:0;padding-right:3px;scrollbar-width:thin;scrollbar-color:rgba(237,221,186,.35) transparent;overscroll-behavior:contain}.sidebar nav::-webkit-scrollbar{width:6px}.sidebar nav::-webkit-scrollbar-thumb{background:rgba(237,221,186,.35);border-radius:20px}.photo-note{display:block;color:var(--muted);font-size:10px;margin-top:5px}.cover-upload-grid{display:grid;grid-template-columns:1fr 180px;gap:20px;align-items:start;padding:15px;border:1px dashed var(--line);border-radius:15px;background:rgba(237,221,186,.10)}.cover-upload input[type=file]{width:100%;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff;font:inherit;font-size:12px}.cover-upload-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.cover-preview{text-align:center;padding:10px;border-radius:13px;background:var(--card);border:1px solid var(--line)}.cover-preview img{width:120px;height:165px;object-fit:cover;border-radius:10px;background:var(--cream);box-shadow:0 5px 15px rgba(0,0,0,.12);display:block;margin:0 auto 8px}.dark .cover-upload{color:var(--text)}.dark .cover-upload input[type=file]{background:#211d1e;color:#fff}@media(max-width:700px){.cover-upload-grid{grid-template-columns:1fr}.cover-preview{max-width:220px}.book-grid{grid-template-columns:repeat(2,1fr)}}
.member-card-head{display:flex;justify-content:space-between;align-items:flex-start}.member-brand{font-family:'Berkshire Swash';font-size:18px;color:#712d38}.member-card-title{font-size:9px;margin-top:5px}.member-photo{width:25mm;height:30mm;border:1px solid #aaa;border-radius:4px;display:grid;place-items:center;overflow:hidden;font-size:8px;color:#777}.member-photo img{width:100%;height:100%;object-fit:cover}.member-card-info{margin-top:8mm;font-size:10px;line-height:1.6}.member-barcode{position:absolute;bottom:5mm;left:10mm;right:10mm;text-align:center;font-size:8px}.member-barcode img{height:28px;width:135px}.member-portal{min-height:100vh;background:var(--bg)}.member-top{height:76px;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5%;position:sticky;top:0;z-index:10}.portal-brand{display:flex;align-items:center;gap:10px;font-family:'Berkshire Swash';font-size:22px;color:var(--wine)}.portal-brand .brand-mark{display:grid}.portal-actions{display:flex;gap:8px}.portal-content{max-width:1200px;margin:auto;padding:32px 5% 60px}.portal-hero{background:linear-gradient(135deg,var(--wine),#8b3b49);color:#fff;border-radius:24px;padding:28px;display:flex;justify-content:space-between;align-items:center}.portal-hero h1{font-family:'Berkshire Swash';font-weight:400;margin:5px 0}.portal-hero p{opacity:.8}.member-avatar-large{width:82px;height:82px;border-radius:24px;background:var(--cream);color:var(--wine);display:grid;place-items:center;font-weight:700;font-size:24px;overflow:hidden}.member-avatar-large img{width:100%;height:100%;object-fit:cover}.login-feature{font-size:11px;opacity:.75;margin-top:20px}.login-demo{font-size:10px;color:#888;margin-top:20px}.book-icon{font-size:20px}.spine-label{line-height:1.4;text-align:center}.spine-label .ddc{font-weight:700;font-size:14px}.spine-label .author-code{font-weight:700;font-size:13px}.spine-label .title-code{font-size:13px}
@media(max-width:650px){.portal-hero{align-items:flex-start}.member-avatar-large{width:64px;height:64px}.portal-actions .btn.secondary{display:none}}
.member-card-preview-wrap{padding:22px 0 8px;display:flex;justify-content:center;background:linear-gradient(135deg,rgba(237,221,186,.28),rgba(113,45,56,.04));border-radius:16px}.member-card-preview{transform:scale(1.25);transform-origin:top center;margin-bottom:35px;box-shadow:0 18px 35px rgba(65,39,40,.18);background:#fffdf8}.member-card-preview .member-photo{background:#f4ead8}.member-photo img{display:block}.member-photo span{font-weight:700;color:var(--wine);font-size:16px}
@media(max-width:650px){.member-card-preview{transform:scale(.95);margin-bottom:0}.member-card-preview-wrap{overflow:hidden}.member-card-preview-wrap .member-card-print{flex:0 0 auto}}

.member-thumb{width:42px;height:52px;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--cream);display:grid;place-items:center;color:var(--wine);font-size:19px}.member-thumb img{width:100%;height:100%;object-fit:cover;display:block}

/* Barcode buku & kartu anggota */
.library-barcode-card{width:86mm;min-height:48mm;border:1px solid #b9ada0;border-radius:7px;padding:7mm 6mm;background:#fff;text-align:center;break-inside:avoid;page-break-inside:avoid;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.library-barcode-brand{font-family:'Berkshire Swash',cursive;color:var(--wine);font-size:14px;margin-bottom:2mm}
.library-barcode-title{font-size:11px;font-weight:700;line-height:1.25}
.library-barcode-meta{font-size:8px;color:#666;margin:1.5mm 0 2mm}
.library-barcode-svg{width:65mm;height:auto;max-height:25mm;object-fit:contain}
.library-barcode-number{font-size:10px;letter-spacing:1px;font-weight:700;margin-top:1mm}
.barcode-print-grid{display:grid;grid-template-columns:repeat(2,86mm);gap:7mm;align-items:start;justify-content:center}
@media print{
  body{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .barcode-print-page{display:block!important}
  .barcode-print-grid{grid-template-columns:repeat(2,86mm);gap:6mm 8mm}
  .library-barcode-card{box-shadow:none}
  .member-card-print{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .member-photo img{display:block!important;visibility:visible!important;opacity:1!important}
}
@media(max-width:900px){.barcode-print-grid{grid-template-columns:1fr}.library-barcode-card{width:86mm}}

/* Print fixes: barcode buku & kartu anggota */
@media print{
  html,body{width:100%;margin:0!important;padding:0!important;background:#fff!important;}
  .barcode-print-page{display:block!important;width:100%;}
  .barcode-print-grid{display:grid!important;grid-template-columns:repeat(2,86mm)!important;gap:6mm 8mm!important;justify-content:center!important;}
  .library-barcode-card{display:block!important;width:86mm!important;min-height:48mm!important;background:#fff!important;color:#111!important;overflow:hidden;}
  .library-barcode-svg{display:block!important;width:65mm!important;height:auto!important;max-height:25mm!important;margin:2mm auto 0!important;}
  .member-print-page{display:block!important;}
  .member-card-print{display:block!important;width:86mm!important;height:54mm!important;background:#fffdf8!important;color:#111!important;overflow:hidden;page-break-inside:avoid;break-inside:avoid;}
  .member-photo{display:grid!important;visibility:visible!important;overflow:hidden!important;}
  .member-photo img{display:block!important;visibility:visible!important;width:100%!important;height:100%!important;object-fit:cover!important;}
}

/* Final print fix: kartu anggota */
@media print {
  @page { size: 100mm 70mm; margin: 7mm; }
  html, body { width: 100%; min-height: 0 !important; margin: 0 !important; padding: 0 !important; background: #fff !important; }
  body > .app-shell { display: block !important; min-height: 0 !important; }
  .member-print-page { display: block !important; width: 86mm !important; height: 54mm !important; margin: 0 auto !important; padding: 0 !important; }
  .member-print-page .member-card-print { display: block !important; width: 86mm !important; height: 54mm !important; margin: 0 !important; padding: 4mm !important; box-sizing: border-box !important; border: .35mm solid #777 !important; border-radius: 2mm !important; background: #fffdf8 !important; color: #111 !important; position: relative !important; overflow: hidden !important; page-break-inside: avoid !important; break-inside: avoid !important; }
  .member-print-page .member-photo { display: grid !important; width: 25mm !important; height: 30mm !important; overflow: hidden !important; visibility: visible !important; }
  .member-print-page .member-photo img { display: block !important; width: 100% !important; height: 100% !important; object-fit: cover !important; visibility: visible !important; opacity: 1 !important; }
  .member-print-page .member-barcode img { display: block !important; width: 135px !important; height: 28px !important; margin: 0 auto !important; visibility: visible !important; }
  .member-card-preview-wrap, .member-card-preview { display: none !important; }
  .no-print, .sidebar, .topbar, .btn, .alert, .content > .card { display: none !important; }
  .content { padding: 0 !important; margin: 0 !important; max-width: none !important; }
  .main { margin: 0 !important; }
}


/* Barcode buku - cetak satu per satu */
.single-barcode-print{width:86mm!important;margin:0 auto!important;}
.single-barcode-print .barcode-print-grid{display:block!important;width:86mm!important;}
.single-barcode-print .library-barcode-card{margin:0!important;width:86mm!important;min-height:48mm!important;}
@media print{
  @page{size:100mm 70mm;margin:6mm;}
  .barcode-print-page.single-barcode-print{display:block!important;width:86mm!important;height:auto!important;margin:0 auto!important;padding:0!important;}
  .single-barcode-print .barcode-print-grid{display:block!important;width:86mm!important;margin:0!important;}
  .single-barcode-print .library-barcode-card{display:block!important;width:86mm!important;height:48mm!important;min-height:48mm!important;margin:0!important;padding:5mm!important;border:0.3mm solid #777!important;border-radius:2mm!important;box-shadow:none!important;overflow:hidden!important;page-break-after:avoid!important;page-break-inside:avoid!important;break-inside:avoid!important;}
  .single-barcode-print .library-barcode-brand{font-size:13px!important;margin-bottom:1.5mm!important;}
  .single-barcode-print .library-barcode-title{font-size:10px!important;line-height:1.2!important;max-height:8mm!important;overflow:hidden!important;}
  .single-barcode-print .library-barcode-meta{font-size:7.5px!important;margin:1mm 0 1.5mm!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .single-barcode-print .library-barcode-svg{display:block!important;width:68mm!important;height:19mm!important;max-height:none!important;margin:1mm auto 0!important;object-fit:contain!important;}
  .single-barcode-print .library-barcode-number{font-size:9px!important;letter-spacing:1.2px!important;margin-top:1mm!important;}
}


/* =========================================================
   ADEL LIBRARY — ELEGANT MEMBER CARD V2
   Standard ID Card: 86 x 54 mm
   ========================================================= */
.member-card-print{
  width:86mm!important;height:54mm!important;box-sizing:border-box!important;
  position:relative!important;overflow:hidden!important;
  padding:4.5mm 5mm!important;border:0!important;border-radius:3.2mm!important;
  background:
    radial-gradient(circle at 100% 0%,rgba(113,45,56,.10),transparent 30%),
    linear-gradient(135deg,#fffdf8 0%,#fffaf0 100%)!important;
  color:#2d2929!important;
  box-shadow:0 12px 28px rgba(65,39,40,.15)!important;
  font-family:Inter,Arial,sans-serif!important;
  isolation:isolate;
}
.member-card-print::before{
  content:"";position:absolute;z-index:-2;inset:0;
  background:linear-gradient(135deg,transparent 0 72%,rgba(237,221,186,.25) 72% 73%,transparent 73%);
}
.member-card-print::after{
  content:"";position:absolute;z-index:-1;width:30mm;height:30mm;right:-10mm;bottom:-13mm;
  border:1px solid rgba(113,45,56,.16);border-radius:50%;
  box-shadow:0 0 0 5mm rgba(237,221,186,.16),0 0 0 10mm rgba(113,45,56,.045);
}
.member-card-head{
  display:block!important;position:relative!important;height:13mm!important;margin:0!important;
}
.member-card-head>div:first-child{padding-right:29mm!important;}
.member-brand{
  font-family:'Berkshire Swash',cursive!important;font-size:16px!important;line-height:1!important;
  color:var(--wine)!important;letter-spacing:.1px!important;margin:0!important;
}
.member-card-title{
  font-size:5.8px!important;letter-spacing:1.05px!important;font-weight:700!important;
  color:#756a66!important;margin-top:1.3mm!important;white-space:nowrap!important;
}
.member-photo{
  position:absolute!important;right:0!important;top:0!important;width:23mm!important;height:29mm!important;
  border:1px solid rgba(113,45,56,.32)!important;border-radius:2.2mm!important;
  background:#f4ead8!important;overflow:hidden!important;display:grid!important;place-items:center!important;
  box-shadow:0 2px 7px rgba(65,39,40,.10)!important;
}
.member-photo::before{content:"";position:absolute;inset:1.2mm;border:1px solid rgba(255,255,255,.65);border-radius:1.4mm;z-index:1;pointer-events:none}
.member-photo img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important}
.member-photo span{font-size:14px!important;font-weight:700!important;color:var(--wine)!important;z-index:2}
.member-card-info{
  position:absolute!important;left:5mm!important;right:31mm!important;top:18mm!important;
  margin:0!important;font-size:7.2px!important;line-height:1.5!important;color:#4d4746!important;
}
.member-card-info b{
  display:block!important;font-size:11px!important;line-height:1.12!important;color:#3b2c2f!important;
  margin-bottom:1.5mm!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.member-card-info br+*{line-height:1.5}
.member-card-info::before{content:"MEMBER";display:block;font-size:5.5px;letter-spacing:1.3px;color:#a17b54;font-weight:700;margin-bottom:.8mm}
.member-barcode{
  position:absolute!important;left:5mm!important;right:31mm!important;bottom:4mm!important;
  margin:0!important;text-align:left!important;font-size:6.5px!important;letter-spacing:.8px!important;color:#4b4141!important;
}
.member-barcode img{
  width:40mm!important;height:10mm!important;object-fit:contain!important;object-position:left center!important;
  display:block!important;margin:0 0 .7mm!important;filter:contrast(1.1)!important;
}
.member-barcode div{font-size:6.5px!important;font-weight:700!important;letter-spacing:1.3px!important}
.member-card-preview-wrap .member-card-preview{
  transform:scale(1.45)!important;transform-origin:top center!important;margin:0 0 55px!important;
  box-shadow:0 22px 50px rgba(65,39,40,.20)!important;
}
@media(max-width:650px){.member-card-preview-wrap .member-card-preview{transform:scale(.98)!important;margin-bottom:0!important}}

/* Bulk print: clean A4 sheet, two cards per row */
.bulk-print-sheet{
  display:grid!important;grid-template-columns:repeat(2,86mm)!important;
  gap:6mm 8mm!important;justify-content:center!important;align-content:start!important;padding:0!important;
}
.bulk-print-sheet .member-card-print{margin:0!important;box-shadow:none!important;page-break-inside:avoid!important;break-inside:avoid!important}

@media print{
  .member-card-print{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .member-card-print::before,.member-card-print::after{display:block!important}
  .member-photo img{visibility:visible!important;opacity:1!important}
}

.selection-bar{position:fixed;left:270px;right:34px;bottom:20px;z-index:15;display:none;align-items:center;justify-content:space-between;gap:12px;background:var(--card);border:1px solid var(--line);box-shadow:0 12px 35px rgba(0,0,0,.14);border-radius:16px;padding:12px 14px;font-size:12px}
.selection-bar.show{display:flex}
input[type=checkbox]{width:17px;height:17px;accent-color:var(--wine);cursor:pointer;vertical-align:middle}
@media(max-width:1000px){.selection-bar{left:18px;right:18px}}
@media print{
  .label-grid{grid-template-columns:repeat(5,30mm);gap:5mm}
  .spine-label{width:30mm!important;min-height:58mm;height:58mm!important;padding:5px!important;text-align:center;display:block}
  .spine-label .ddc{font-size:18px;font-weight:800;line-height:1.05}
  .spine-label .author-code,.spine-label .title-code{font-size:14px;font-weight:700;line-height:1.15}
  .spine-label small{font-size:6.5px;line-height:1.1}
  .spine-label hr{margin:4px 0;border:0;border-top:1px solid #222}
  .spine-label .barcode-svg{height:24px;max-width:100%;margin-top:3px}
  .spine-label b{font-size:6px;letter-spacing:.2px}
}

/* Final print margin/layout for spine labels */
@media print {
  @page { size: A4 portrait; margin: 8mm; }
  .print-title, .print-sub { display:none !important; }
  .label-grid {
    width: 170mm;
    margin: 0 auto;
    display: grid !important;
    grid-template-columns: repeat(5, 30mm) !important;
    column-gap: 5mm !important;
    row-gap: 5mm !important;
    align-items: start;
    justify-content: center;
  }
  .spine-label {
    box-sizing: border-box !important;
    width: 30mm !important;
    height: 58mm !important;
    min-height: 58mm !important;
    margin: 0 !important;
    padding: 4mm 2.5mm !important;
    border: 0.3mm solid #222 !important;
    overflow: hidden;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
}
