:root{--ink:#243a35;--green:#214d44;--muted:#6b7871;--paper:#f7f5ef;--line:#dfE3d9;--gold:#d4a86b;--white:#fff;--red:#a13d36}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,sans-serif}header{display:flex;align-items:center;justify-content:space-between;padding:24px 5vw;border-bottom:1px solid var(--line);background:#fff9}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--green);font-size:23px;font-weight:750}.brand small{display:block;font-size:11px;font-weight:500;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.brand-icon{background:var(--green);color:#fff;border-radius:12px;padding:0 12px;font-size:32px}main{max-width:1280px;margin:auto;padding:38px 5vw;min-height:72vh}h1,h2,h3{line-height:1.15}h1{font-family:Georgia,serif;font-weight:400;font-size:46px;margin:10px 0 18px}h2{font-size:26px}h3{font-size:19px}.eyebrow{color:var(--muted);font-size:12px;font-weight:750;letter-spacing:2px;text-transform:uppercase}.muted{color:var(--muted)}button,.button{background:var(--green);border:1px solid var(--green);color:#fff;padding:11px 17px;border-radius:9px;font:inherit;font-size:14px;font-weight:650;cursor:pointer;display:inline-block;text-decoration:none;text-align:center}button:hover,.button:hover{filter:brightness(1.08)}button:disabled{opacity:.5;cursor:wait}.secondary{background:#fff;color:var(--green);border-color:var(--line)}.danger{color:var(--red);border-color:#e5b6b2;background:#fff}.small{padding:7px 11px;font-size:12px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.hero{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;margin-bottom:28px}.stats{display:flex;gap:25px;margin:26px 0;color:var(--muted)}.stats strong{display:block;color:var(--green);font:30px Georgia,serif}.toolbar{display:flex;gap:10px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:13px;flex-wrap:wrap;margin-bottom:28px}.toolbar input{flex:1;min-width:200px}.toolbar select{width:auto;max-width:180px}input,select,textarea{width:100%;font:inherit;font-size:15px;border:1px solid #c9d2c9;border-radius:8px;padding:10px 12px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid #609b80;outline-offset:1px}textarea{min-height:100px;resize:vertical}label{display:block;font-size:13px;font-weight:600;margin-bottom:5px}label.check{display:flex;align-items:center;gap:9px}.check input{width:18px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:25px}.book{border:0;padding:0;background:transparent;color:var(--ink);text-align:left;font-weight:400}.cover{height:248px;border-radius:5px 10px 10px 5px;display:flex;align-items:center;justify-content:center;background:#dce6dc;box-shadow:3px 6px 12px #23392f14;overflow:hidden;border-left:5px solid #0001}.cover img{width:100%;height:100%;object-fit:contain;background:#e9e9e1}.cover span{padding:24px;text-align:center;font:22px/1.3 Georgia,serif;color:var(--green)}.book h3{font-size:15px;margin:12px 0 3px;line-height:1.3}.book p{margin:3px 0;font-size:12px;color:var(--muted)}.tag{display:inline-block;font-size:11px;background:#e5ece4;border-radius:5px;padding:3px 7px;color:var(--green);margin:5px 5px 0 0}.tag.loan{background:#f3e4cc;color:#8b6026}.tag.late{background:#f7dcd5;color:var(--red)}.empty{padding:55px 20px;text-align:center;background:#fff;border:1px dashed #cad3c6;border-radius:15px}.empty h2{font-family:Georgia,serif;font-weight:400}.auth{max-width:520px;margin:20px auto;padding:36px;background:white;border:1px solid var(--line);border-radius:20px}.auth h1{font-size:38px}.auth button{width:100%;margin-top:16px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field.full{grid-column:1/-1}.form-actions{margin-top:25px;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.notice{padding:15px;background:#f2ead9;border-radius:9px;font-size:14px;margin:16px 0}.error{background:#f8e2dd;color:var(--red)}dialog{border:0;border-radius:18px;max-width:800px;width:calc(100% - 28px);padding:28px;max-height:92dvh;color:var(--ink);background:var(--paper)}dialog::backdrop{background:#18342ccc;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.dialog-head h2{margin:0}.detail{display:grid;grid-template-columns:190px 1fr;gap:28px}.detail .cover{height:280px}.detail h1{font-size:32px;margin-top:0}.detail p{font-size:14px}.tabs{display:flex;gap:9px;margin-bottom:26px}.tabs button.active{background:var(--green);color:#fff}.panel{padding:24px;margin:18px 0;border:1px solid var(--line);background:#fff;border-radius:12px}.member{padding:14px 0;border-bottom:1px solid var(--line)}.member:last-child{border:0}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--green);color:#fff;border-radius:10px;padding:12px 20px;box-shadow:0 6px 20px #0002;max-width:90vw;display:none;z-index:10}footer{text-align:center;color:var(--muted);font-size:12px;padding:24px}.scanner video{width:100%;max-height:400px;background:#162a24;border-radius:10px;object-fit:cover}table{width:100%;border-collapse:collapse;font-size:13px}td,th{padding:8px;border-bottom:1px solid var(--line);text-align:left;overflow-wrap:anywhere}.table-wrap{overflow-x:auto}a{color:var(--green)}.login-help{font-size:13px}.book:hover .cover{transform:translateY(-3px)}.cover{transition:transform .15s}#account{font-size:13px}.subtitle{max-width:550px}details{margin:15px 0}summary{cursor:pointer}pre{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:650px){header{padding:18px 5vw}.brand{font-size:18px}.brand small{font-size:9px}.brand-icon{font-size:28px}#account .user-name{display:none}main{padding-top:25px}h1{font-size:36px}.hero{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 17px}.cover{height:225px}.fields{grid-template-columns:1fr}.field.full{grid-column:auto}.detail{grid-template-columns:1fr}.detail .cover{width:155px;height:215px;margin:auto}.toolbar{padding:12px}.toolbar select{max-width:none;flex:1}.toolbar input{min-width:100%}.stats{gap:18px}.auth{padding:25px}.tabs{flex-wrap:wrap}dialog{padding:20px}.form-actions button{flex:1}.dialog-head h2{font-size:23px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
