@font-face{font-family:Nexa;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Nexa-Regular.woff2)format("woff2"),url(/fonts/Nexa-Regular.woff)format("woff")}@font-face{font-family:Nexa;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Nexa-Bold.woff2)format("woff2"),url(/fonts/Nexa-Bold.woff)format("woff")}@font-face{font-family:Nexa;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/Nexa-Heavy.woff2)format("woff2"),url(/fonts/Nexa-Heavy.woff)format("woff")}:root{--page-bg:#fff6ec;--paper:#fffdfb;--ink:#211a15;--ink-soft:#756a5f;--ink-faint:#a6998c;--line:#f0e0ce;--orange:#f0651c;--orange-deep:#c6350f;--maroon:#7a2340;--amber:#f2a93b;--radius-lg:20px;--radius-md:14px;--radius-sm:9px;--shadow-card:0 10px 26px -16px #211a1559;--shadow-pop:0 20px 48px -18px #211a1573;--genre-business:#c6350f;--genre-marketing:#db9426;--genre-dev:#2e6e86;--genre-data:#3b5ba5;--genre-architectuur:#8b5a2b;--genre-agile:#7c8c3c;--genre-leiderschap:#6b5b95;--genre-fictie:#3f7a57;--genre-overig:#8a8578;--status-available:#2e7d4f;--status-loaned:#c6350f;--status-overdue:#a81f1f;--status-hold:#b8791a;--font-display:"Nexa", ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, -apple-system, sans-serif;--font-body:"Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--page-bg);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}#app{z-index:1;max-width:1080px;margin:0 auto;padding:0 20px 90px;position:relative}.brand-ring{background:linear-gradient(135deg,var(--orange),var(--orange-deep));z-index:0;pointer-events:none;opacity:.18;border-radius:50%;width:280px;height:280px;position:fixed}.brand-ring:after{content:"";background:var(--page-bg);border-radius:50%;position:absolute;inset:32%}.brand-ring-tl{top:-110px;left:-110px}.brand-ring-br{bottom:-120px;right:-120px}.brand-ring-mid{opacity:.13;width:150px;height:150px;top:38%;right:6%}.brand-swoosh{z-index:0;pointer-events:none;fill:none;width:100vw;height:100vh;position:fixed;inset:0}a{color:inherit}button{cursor:pointer;font-family:inherit}.hidden{display:none!important}.visually-hidden{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}header.top{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:22px 0 14px;display:flex;position:relative}.brand{z-index:1;align-items:center;gap:12px;display:flex;position:relative}.brand-logo{flex:none;width:auto;height:38px;display:block}.brand-text h1{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:22px;font-weight:800}.brand-text p{color:var(--ink-soft);margin:2px 0 0;font-size:12.5px}.profile-pill{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:999px;align-items:center;gap:8px;padding:7px 8px 7px 14px;font-size:13.5px;font-weight:600;display:flex}.profile-pill button{background:var(--page-bg);width:26px;height:26px;color:var(--ink-soft);border:none;border-radius:999px;font-size:12px}.profile-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.admin-badge{background:var(--ink);color:#fff;border-radius:999px;align-items:center;gap:8px;padding:7px 8px 7px 14px;font-size:13px;font-weight:700;display:flex}.admin-badge button{color:#fff;background:#ffffff29;border:none;border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:700}.admin-login-link{color:var(--ink-soft);background:0 0;border:none;padding:4px;font-size:12.5px;text-decoration:underline}.admin-only-note{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-soft);background:#fbf1e4;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;font-size:12.5px;display:flex}.stat-banner{background:linear-gradient(120deg,var(--orange) 0%, var(--orange-deep) 58%, var(--maroon) 100%);border-radius:var(--radius-lg);color:#fff;box-shadow:var(--shadow-pop);grid-template-columns:repeat(4,1fr);gap:18px;padding:22px 24px;display:grid;position:relative;overflow:hidden}.stat-banner:after{content:"";background:#ffffff1a;border-radius:50%;width:180px;height:180px;position:absolute;top:-60px;right:-40px}.stat-banner:before{content:"";background:#ffffff12;border-radius:50%;width:140px;height:140px;position:absolute;bottom:-70px;left:38%}.stat-tile{z-index:1;position:relative}.stat-tile .num{font-family:var(--font-display);font-size:30px;font-weight:800;line-height:1}.stat-tile .lbl{opacity:.88;letter-spacing:.02em;margin-top:6px;font-size:12px}nav.tabs{background:var(--paper);border:1px solid var(--line);width:fit-content;max-width:100%;box-shadow:var(--shadow-card);border-radius:999px;gap:6px;margin:22px 0 18px;padding:5px;display:flex;overflow-x:auto}nav.tabs button{color:var(--ink-soft);white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:9px 16px;font-size:13.5px;font-weight:700;transition:background .15s,color .15s}nav.tabs button.active{background:var(--ink);color:#fff}.eyebrow{letter-spacing:.11em;text-transform:uppercase;color:var(--orange-deep);margin:0 0 6px;font-size:11px;font-weight:800}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.section-head h2{font-family:var(--font-display);margin:0;font-size:19px;font-weight:800}.section-sub{color:var(--ink-soft);margin:2px 0 0;font-size:13px}.section-toggle{cursor:pointer;text-align:left;font:inherit;color:inherit;background:0 0;border:none;align-items:baseline;gap:8px;padding:0;display:flex}.section-chevron{color:var(--ink-soft);font-size:13px;transition:transform .15s;display:inline-block;transform:rotate(0)}.section-chevron-open{transform:rotate(90deg)}.toolbar{z-index:5;background:var(--page-bg);flex-wrap:wrap;gap:10px;margin-bottom:16px;padding:8px 0;display:flex;position:sticky;top:0}.toolbar input[type=text],.toolbar input[type=date]{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper);flex:1;min-width:180px;padding:10px 14px;font-size:14px}.toolbar select{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:10px 12px;font-size:13.5px}.chip-row{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.chip{border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:600}.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:22px 0 4px;display:flex}.pager-num{min-width:38px;padding-left:0;padding-right:0}.pager-num.active{background:var(--ink);color:#fff;border-color:var(--ink);cursor:default;opacity:1}.pager-ellipsis{color:var(--ink-soft);-webkit-user-select:none;user-select:none;padding:0 4px}.book-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;display:grid}.book-card{background:var(--paper);border-radius:var(--radius-md);border:1px solid var(--line);box-shadow:var(--shadow-card);text-align:left;cursor:pointer;flex-direction:column;gap:8px;padding:16px 16px 14px 18px;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.book-card:hover{box-shadow:var(--shadow-pop);transform:translateY(-3px)}.book-card:before{content:"";background:var(--spine,var(--genre-overig));width:7px;position:absolute;top:0;bottom:0;left:0}.book-card .title{font-family:var(--font-display);margin:0;padding-right:52px;font-size:15.5px;font-weight:800;line-height:1.25}.book-card .author{color:var(--ink-soft);margin:0;font-size:12.5px}.badge-row{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.badge{color:#fff;border-radius:999px;align-items:center;gap:4px;padding:4px 9px;font-size:11px;font-weight:700;display:inline-flex}.badge.genre{color:#fff}.badge.available{background:var(--status-available)}.badge.overdue{background:var(--status-overdue)}.badge.hold{background:var(--status-hold)}.card-cta{color:var(--orange-deep);text-align:left;background:0 0;border:none;margin-top:auto;padding-top:8px;padding-left:0;font-size:13px;font-weight:700}.empty-state{text-align:center;background:var(--paper);border-radius:var(--radius-lg);border:1px dashed var(--line);color:var(--ink-soft);padding:50px 20px}.empty-state .big-emoji{margin-bottom:10px;font-size:38px;display:block}.empty-state button{background:var(--orange);color:#fff;border:none;border-radius:999px;margin-top:14px;padding:10px 20px;font-size:13.5px;font-weight:700}.btn{border:none;border-radius:999px;padding:10px 18px;font-size:13.5px;font-weight:700}.btn-primary{background:var(--orange);color:#fff}.btn-primary:hover{background:var(--orange-deep)}.btn-ghost{background:var(--page-bg);color:var(--ink)}.btn-outline{border:1px solid var(--line);color:var(--ink);background:0 0;transition:background .15s,border-color .15s}.btn-outline:hover{background:var(--page-bg);border-color:var(--ink-faint)}.btn-danger{color:var(--status-overdue);background:#f4e3e1}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-block{width:100%}.fab{background:linear-gradient(135deg,var(--orange),var(--orange-deep));color:#fff;width:58px;height:58px;box-shadow:var(--shadow-pop);z-index:40;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:26px;line-height:1;display:flex;position:fixed;bottom:26px;right:22px}.fab-scan{background:linear-gradient(135deg,var(--orange),var(--orange-deep));color:#fff;width:58px;height:58px;box-shadow:var(--shadow-pop);z-index:40;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:24px;line-height:1;display:flex;position:fixed;bottom:26px;left:22px}.code-tag{color:var(--ink-soft);background:var(--page-bg);border-radius:999px;padding:2px 8px;font-family:SFMono-Regular,Consolas,monospace;font-size:11px;font-weight:800;position:absolute;top:14px;right:14px}.card-cover{aspect-ratio:2/3;border-radius:10px;flex:none;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.card-cover img{object-fit:contain;width:100%;height:100%;display:block}.cover-fallback{color:#fff;opacity:.85;font-size:34px}.detail-cover-img{object-fit:cover;background:#fff;border-radius:6px;flex:none;width:56px;height:80px;box-shadow:0 4px 10px #0003}#printArea{display:none}body.printing>:not(#printArea){display:none!important}body.printing #printArea{display:block}@page{size:A4;margin:0}.print-sheet{grid-template-columns:repeat(4,1fr);gap:0;padding:0;display:grid}.print-label{box-sizing:border-box;text-align:center;page-break-inside:avoid;border:1px dashed #999;border-radius:2mm;flex-direction:column;justify-content:center;align-items:center;gap:1mm;padding:2mm;display:flex;overflow:hidden}.print-qr{justify-content:center;display:flex}.print-qr canvas,.print-qr img,.print-qr svg{max-width:100%;display:block}.print-text{min-width:0}.print-code{font-family:var(--font-display);color:#111;font-size:3mm;font-weight:800}.print-title{color:#333;font-size:2.2mm;line-height:1.2}.print-label-wide{text-align:left;flex-direction:row;justify-content:flex-start;align-items:center;gap:2mm}.print-label-wide .print-qr{flex:none}.print-label-wide .print-text{text-align:left;flex:1}.print-title-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.modal-overlay{z-index:100;background:#211a1580;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.modal{background:var(--paper);border-radius:22px 22px 0 0;width:100%;max-width:520px;max-height:88vh;padding:24px 22px 26px;overflow-y:auto;box-shadow:0 -10px 40px #00000040}@media (width>=640px){.modal-overlay{align-items:center;padding:20px}.modal{border-radius:var(--radius-lg);max-height:84vh}}.modal h3{font-family:var(--font-display);margin:0 0 4px;font-size:19px;font-weight:800}.modal .modal-sub{color:var(--ink-soft);margin:0 0 16px;font-size:13px}.field{margin-bottom:14px}.field label{color:var(--ink-soft);margin-bottom:5px;font-size:12.5px;font-weight:700;display:block}.field input[type=text],.field input[type=number],.field select,.field textarea,.field input[type=file]{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--page-bg);width:100%;padding:11px 13px;font-family:inherit;font-size:14px}.field textarea{resize:vertical;min-height:70px}.field-row{gap:10px;display:flex}.field-row .field{flex:1}.isbn-row{gap:8px;display:flex}.isbn-row input{flex:1}.scan-btn{background:var(--ink);color:#fff;border-radius:var(--radius-sm);white-space:nowrap;border:none;padding:0 14px;font-size:13px;font-weight:700}.modal-actions{gap:10px;margin-top:6px;display:flex}.modal-actions .btn{flex:1}.modal-close-x{color:var(--ink-soft);background:0 0;border:none;font-size:20px;position:absolute;top:14px;right:16px}.modal{position:relative}.scan-viewport{border-radius:var(--radius-md);background:#000;justify-content:center;align-items:center;min-height:220px;margin:10px 0;display:flex;position:relative;overflow:hidden}.scan-viewport video,.scan-viewport canvas{width:100%!important;height:auto!important}.scan-status{color:var(--ink-soft);text-align:center;margin:8px 0 14px;font-size:13px}.detail-cover{border-radius:var(--radius-md);color:#fff;align-items:center;gap:14px;margin-bottom:16px;padding:22px;display:flex}.detail-cover .emoji{font-size:34px}.detail-cover h3{color:#fff;margin:0}.detail-cover p{opacity:.9;margin:2px 0 0;font-size:12.5px}.detail-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;font-size:13px;display:grid}.detail-grid div span{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;font-size:11px;display:block}.detail-desc{color:var(--ink);white-space:pre-wrap;margin-bottom:16px;font-size:13.5px;line-height:1.6}.link-btn{color:var(--orange-deep);font-weight:700;font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.loan-list{margin:0 0 16px;padding:0;font-size:13px;list-style:none}.loan-list li{border-bottom:1px solid var(--line);justify-content:space-between;padding:7px 0;display:flex}.loan-list li:last-child{border-bottom:none}.icon-btn{color:var(--ink-soft);background:0 0;border:none;padding:4px 6px;font-size:15px}.icon-btn:hover{color:var(--ink)}.detail-actions-row{justify-content:flex-end;gap:6px;margin-bottom:6px;display:flex}.simple-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:14px 16px;display:flex}.simple-card .info b{font-family:var(--font-display);font-size:14.5px}.simple-card .info p{color:var(--ink-soft);margin:3px 0 0;font-size:12.5px}.simple-card.overdue{background:#fff6f6;border-color:#ebc2c2}.simple-card.notif-unread{background:#fff6ea;border-color:#f0d9b8}.bell-btn{background:var(--paper);border:1px solid var(--line);width:38px;height:38px;box-shadow:var(--shadow-card);border-radius:999px;flex:none;font-size:16px;position:relative}.bell-badge{background:var(--status-overdue);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:10px;font-weight:800;display:flex;position:absolute;top:-4px;right:-4px}.queue-pos{background:var(--ink);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:24px;height:24px;margin-right:8px;font-size:11.5px;font-weight:800;display:inline-flex}.stat-grid-mini{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:22px;display:grid}.mini-stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:16px}.mini-stat .num{font-family:var(--font-display);font-size:24px;font-weight:800}.mini-stat .lbl{color:var(--ink-soft);margin-top:2px;font-size:12px}.top-book-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:9px 0;font-size:13.5px;display:flex}.top-book-row:last-child{border-bottom:none}.top-book-row .rank{width:20px;color:var(--ink-faint);font-weight:800}.activity-feed{margin:0;padding:0;list-style:none}.activity-feed li{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:9px 0;font-size:13px;display:flex}.activity-feed li:last-child{border-bottom:none}.activity-feed .when{color:var(--ink-faint);white-space:nowrap;font-size:11.5px}#toast{background:var(--ink);color:#fff;box-shadow:var(--shadow-pop);opacity:0;pointer-events:none;z-index:200;border-radius:999px;padding:11px 20px;font-size:13.5px;transition:all .25s;position:fixed;bottom:28px;left:50%;transform:translate(-50%)translateY(20px)}#toast.show{opacity:1;transform:translate(-50%)translateY(0)}.helper-link{color:var(--ink-soft);font-size:12px;text-decoration:underline}.manage-section{margin-bottom:26px}.manage-form{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);flex-wrap:wrap;align-items:end;gap:10px;padding:16px;display:flex}.manage-form .field{flex:1;min-width:160px;margin-bottom:0}.pin-form{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.pin-form .field{min-width:160px;margin-bottom:0}.label-pick-list{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);max-height:280px;padding:4px;overflow-y:auto}.label-pick-row{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:10px;padding:9px 10px;display:flex}.label-pick-row:last-child{border-bottom:none}.label-pick-row input[type=checkbox]{flex:none;width:16px;height:16px}.label-pick-info{flex-direction:column;gap:2px;font-size:13px;display:flex}@media (width<=520px){.stat-banner{grid-template-columns:repeat(2,1fr);row-gap:16px}.detail-grid{grid-template-columns:1fr}.field-row{flex-wrap:wrap}.field-row .field{flex:1;min-width:130px}.detail-actions-row{flex-wrap:wrap;justify-content:flex-start}.isbn-row{flex-wrap:wrap}.isbn-row input{width:100%;min-width:0}}#app{padding-top:6px}.stat-banner{margin-bottom:4px}nav.tabs{margin:26px 0 22px}.card-cta{color:var(--ink-soft)}.card-cta:hover{color:var(--orange-deep)}.badge.loaned{background:#6b6560}.badge.mine{background:var(--maroon)}.pager{justify-content:center;align-items:center;gap:14px;margin:22px 0 8px;display:flex}.pager-info{color:var(--ink-soft);font-size:13px;font-weight:700}
