:root { --ink:#111; --cream:#ededeb; --paper:#fff; --sage:#f1dada; --green:#d00000; --gold:#ffd900; --line:#c7c7c7; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"Source Sans 3",Arial,sans-serif; }
main { display:flex; flex-direction:column; }
button,input,select { font:inherit; }
button,label,select { cursor:pointer; }
.site-header { min-height:88px; padding:10px clamp(24px,6vw,92px); display:flex; align-items:center; justify-content:space-between; border-bottom:7px solid #111; background:#d00000; color:#fff; }
.header-actions { display:flex; align-items:center; gap:10px; }
.header-add { text-decoration:none; padding:11px 17px; }
.site-header .header-add { background:#fff; color:#d00000; border-color:#111; }
.brand { display:flex; align-items:center; gap:14px; color:#fff; text-decoration:none; font:700 23px/1 "Oswald",sans-serif; text-transform:uppercase; letter-spacing:.01em; }
.brand span { display:flex; flex-direction:column; }
.brand small { margin-top:5px; font:600 13px/1 "Source Sans 3",sans-serif; letter-spacing:.09em; }
.brand-logo { width:62px; height:62px; object-fit:contain; background:#fff; border:3px solid #fff; }
.brand-mark { display:none; }
.ghost-button,.secondary-button { border:2px solid #111; color:var(--ink); background:#fff; padding:10px 17px; border-radius:0; font-weight:700; }
.site-header .ghost-button { border-color:#fff; color:#fff; background:transparent; }
.hero { order:2; min-height:690px; padding:74px 24px 86px; text-align:center; background:#e8e8e5; border-top:7px solid #111; }
.eyebrow { display:inline-block; color:#fff; background:#d00000; padding:5px 9px; font:700 12px "Oswald",sans-serif; letter-spacing:.12em; margin-bottom:14px; text-transform:uppercase; }
h1,h2,h3 { font-family:"Oswald",Arial,sans-serif; text-transform:uppercase; }
h1 { font-size:clamp(43px,5vw,67px); line-height:.98; margin:0; letter-spacing:-.02em; }
.hero>p { max-width:610px; margin:24px auto 35px; color:#59645d; line-height:1.65; }
.capture-card { width:min(630px,100%); margin:auto; background:var(--paper); border:3px solid #111; border-radius:0; padding:10px 28px 24px; box-shadow:10px 10px 0 #d00000; text-align:left; }
.login-gate { width:min(520px,100%); margin:auto; padding:28px; background:#fff; border:3px solid #111; box-shadow:10px 10px 0 #d00000; }
.login-gate strong { display:block; font:700 25px "Oswald",sans-serif; text-transform:uppercase; }
.login-gate p { color:#59645d; }
.capture-tabs { display:flex; justify-content:center; gap:clamp(10px,4vw,35px); border-bottom:1px solid var(--line); margin-bottom:22px; }
.tab { padding:13px 6px 12px; color:#717b74; border:0; border-bottom:2px solid transparent; background:none; font-weight:600; }
.tab.active { color:var(--green); border-color:var(--green); }
.hidden { display:none!important; }
.camera-stage { position:relative; height:230px; overflow:hidden; border-radius:9px; background:#e9ece5; }
#camera { width:100%; height:100%; object-fit:cover; display:none; }
#isbnCamera { width:100%; height:100%; object-fit:cover; display:none; }
.camera-placeholder { height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#667169; }
.camera-placeholder strong { margin:10px 0 4px; color:var(--ink); }
.camera-placeholder small,.field-hint,.support-note { color:#78817b; font-size:12px; }
.barcode-icon { font-size:42px; color:var(--green); transform:rotate(90deg); }
.isbn-icon { color:#d00000; font:700 28px "Oswald",sans-serif; letter-spacing:.12em; }
.isbn-frame { inset:65px 9%; }
.focusable-camera { cursor:crosshair; }
.ios-device #focusButton { display:none; }
.focus-indicator { display:none; position:absolute; width:58px; height:58px; border:3px solid #ffd900; transform:translate(-50%,-50%); pointer-events:none; animation:focus-pulse .65s ease-out; }
.camera-controls { display:flex; align-items:end; justify-content:center; gap:14px; flex-wrap:wrap; margin-top:15px; padding:13px; border:2px solid #111; background:#f3f3f0; }
.camera-slider { display:grid; grid-template-columns:1fr auto; gap:3px 8px; min-width:180px; font-size:12px; font-weight:700; text-transform:uppercase; }
.camera-slider input { grid-column:1 / 3; width:100%; accent-color:#d00000; }
.camera-slider output { font-weight:400; }
@keyframes focus-pulse { from { width:85px;height:85px;opacity:.4 } to { width:58px;height:58px;opacity:1 } }
.scan-frame { display:none; position:absolute; inset:42px 18%; border:1px solid rgba(255,255,255,.55); }
.scan-frame span { position:absolute; width:25px; height:25px; border-color:#fff; border-style:solid; }
.scan-frame span:nth-child(1){left:-2px;top:-2px;border-width:3px 0 0 3px}.scan-frame span:nth-child(2){right:-2px;top:-2px;border-width:3px 3px 0 0}.scan-frame span:nth-child(3){left:-2px;bottom:-2px;border-width:0 0 3px 3px}.scan-frame span:nth-child(4){right:-2px;bottom:-2px;border-width:0 3px 3px 0}
.scan-actions { display:flex; gap:10px; justify-content:center; margin-top:17px; }
.primary-button { border:2px solid #111; border-radius:0; background:#d00000; color:white; padding:10px 21px; font-weight:700; text-transform:uppercase; box-shadow:3px 3px 0 #111; }
.primary-button:hover { background:#a90000; }
.secondary-button { display:inline-block; padding:11px 17px; }
.secondary-button:disabled { opacity:.45; cursor:not-allowed; }
.support-note { text-align:center; min-height:16px; margin:9px 0 0; }
.detected-isbn { margin-top:16px; padding:14px; border:2px solid #111; background:#fff7bd; }
.detected-isbn>label { display:block; margin-bottom:8px; font-size:13px; font-weight:700; }
.detected-isbn .field-hint { margin:7px 0 0; }
#isbnPanel { padding:20px 8px 10px; }
#isbnPanel>label { display:block; font-size:13px; font-weight:700; margin-bottom:8px; }
.manual-book-form { padding:17px 4px 4px; }
.manual-form-intro { display:flex; align-items:center; gap:14px; margin-bottom:18px; padding:13px 14px; border:2px solid #111; background:#fff7bd; }
.manual-form-intro .isbn-icon { flex:0 0 auto; padding-right:14px; border-right:2px solid #111; font-size:18px; }
.manual-form-intro strong { display:block; font:700 18px "Oswald",sans-serif; text-transform:uppercase; }
.manual-form-intro p { margin:2px 0 0; color:#59645d; font-size:12px; line-height:1.35; }
.manual-fields { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.manual-fields label { display:grid; gap:6px; color:#111; font-size:13px; font-weight:700; }
.manual-fields label>span { display:flex; justify-content:space-between; gap:8px; }
.manual-fields em { color:#78817b; font-size:10px; font-style:normal; font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.manual-fields input { min-width:0; width:100%; border:2px solid #111; border-radius:0; padding:11px; background:#fff; }
.manual-fields input:focus { outline:3px solid #ffd900; outline-offset:0; }
.manual-fields .wide-field { grid-column:1/-1; }
.manual-fields .copies-field { max-width:150px; }
.manual-form-actions { display:flex; align-items:center; gap:14px; margin-top:19px; padding-top:17px; border-top:2px solid #111; }
.manual-form-actions span { color:#78817b; font-size:11px; }
.isbn-row { display:flex; gap:9px; }
.isbn-row input { flex:1; min-width:0; border:1px solid #adb5af; border-radius:7px; padding:12px 13px; background:white; }
.status { min-height:0; text-align:center; color:var(--green); font-size:13px; padding-top:5px; }
.status.error { color:#a23d31; }
.library-section { order:1; background:var(--paper); padding:64px clamp(24px,7vw,110px) 120px; min-height:calc(100vh - 95px); border-top:0; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; }
.section-heading h2 { font-size:46px; margin:0; letter-spacing:-.02em; border-bottom:7px solid #d00000; line-height:1.05; }
.library-tools { display:flex; gap:10px; }
.search-box { display:flex; align-items:center; gap:8px; border:1px solid var(--line); background:white; padding:9px 12px; border-radius:7px; }
.search-box input { border:0; outline:0; width:190px; }
select { border:1px solid var(--line); border-radius:7px; background:white; padding:9px 30px 9px 11px; color:var(--ink); }
.inventory-group { margin-top:28px; }
.inventory-group-heading { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:24px; padding-bottom:10px; border-bottom:2px solid #111; }
.inventory-group-heading h3 { margin:0; font-size:27px; }
.international-group { margin-top:58px; padding-top:24px; border-top:7px solid #d00000; }
.international-group .inventory-group-heading h3 { color:#d00000; }
.book-count { color:#748078; font-size:13px; }
.book-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); grid-auto-rows:1fr; align-items:stretch; gap:36px 27px; }
.book-card { display:flex; min-width:0; align-self:stretch; flex-direction:column; }
.book-card h3 { margin:12px 0 5px; font-size:17px; line-height:1.25; }
.book-title { display:block; width:100%; padding:0; border:0; color:#111; background:none; font:inherit; text-align:left; text-transform:inherit; cursor:pointer; }
.book-title:hover,.book-title:focus-visible { color:#d00000; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.book-cover { cursor:pointer; }
.book-cover:focus-visible { outline:4px solid #ffd900; outline-offset:-5px; }
.book-card p { margin:2px 0; color:#69736c; font-size:13px; }
.book-card .book-isbn { font-size:10px; color:#9aa098; margin-top:8px; }
.category-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.category-tags span { display:inline-block; padding:3px 6px; background:#f1dada; border:1px solid #d00000; color:#760000; font-size:10px; line-height:1.2; }
.dialog-description { max-height:110px; overflow:auto; color:#4f5751; font-size:13px; line-height:1.45; }
.details-dialog-card { grid-template-columns:minmax(120px,180px) minmax(0,1fr); }
.details-dialog-card>img { width:100%; }
.details-description { max-height:220px; margin:18px 0 0; padding-top:14px; overflow:auto; border-top:2px solid #111; color:#3f4842; font-size:14px; line-height:1.55; white-space:pre-line; }
.details-stock { display:inline-block; margin-top:14px; padding:6px 9px; color:#fff; background:#111; font:700 12px "Oswald",sans-serif; text-transform:uppercase; letter-spacing:.04em; }
.availability-row { display:flex; margin-top:10px; }
.availability-row[hidden] { display:none; }
.availability-badge { display:inline-block; padding:4px 7px; background:#111; color:#fff; font:700 10px "Oswald",sans-serif; text-transform:uppercase; letter-spacing:.04em; }
.availability-badge[data-status="in_stock"] { background:#277a38; }
.availability-badge[data-status="preorder"],.availability-badge[data-status="coming_soon"] { background:#9d6500; }
.availability-badge[data-status="backorder"],.availability-badge[data-status="out_of_stock"] { background:#a90000; }
.availability-select { width:100%; min-width:0; height:38px; padding:6px 28px 6px 8px; color:#111; background-color:#fff; font-size:12px; line-height:1.2; }
body:not(.inventory-admin) .availability-select { display:none; }
body.inventory-admin .availability-badge { display:none; }
.cover-wrap { aspect-ratio:2/3; position:relative; background:#e3e4dc; border-radius:0; overflow:hidden; border:2px solid #111; box-shadow:7px 7px 0 #d00000; }
.book-cover { width:100%; height:100%; object-fit:cover; }
.delete-button { position:absolute; top:7px; right:7px; width:27px; height:27px; border:0; border-radius:50%; background:rgba(20,27,22,.77); color:white; opacity:0; transition:.2s; }
.edit-cover-button { position:absolute; left:7px; bottom:7px; border:2px solid #111; background:#fff; color:#111; padding:6px 8px; font-size:11px; font-weight:700; text-transform:uppercase; opacity:0; transition:.2s; }
.cover-wrap:hover .delete-button,.delete-button:focus,.cover-wrap:hover .edit-cover-button,.edit-cover-button:focus { opacity:1; }
.empty-state { text-align:center; color:#768078; padding:60px 0 20px; }
.empty-state h3 { color:var(--ink); font-size:23px; margin:18px 0 7px; }.empty-state p{margin:0}.empty-books{font-size:38px;color:#b4bcae}
dialog { width:min(620px,calc(100% - 32px)); border:3px solid #111; border-radius:0; padding:0; box-shadow:10px 10px 0 #d00000; }
.site-footer { display:flex; justify-content:space-between; gap:20px; padding:24px clamp(24px,6vw,92px); color:#fff; background:#111; font-size:12px; }
.site-footer strong { font:700 16px "Oswald",sans-serif; text-transform:uppercase; }
.site-footer a { color:#fff; }
dialog::backdrop { background:rgba(20,29,23,.65); backdrop-filter:blur(3px); }
.dialog-card { position:relative; display:grid; grid-template-columns:150px 1fr; gap:28px; padding:30px; background:var(--paper); }
.dialog-card>img { width:150px; aspect-ratio:2/3; object-fit:cover; background:#e5e5dc; box-shadow:5px 8px 14px #ccc; }
.dialog-card h2 { margin:5px 0 8px; font-size:30px; }.dialog-author{color:#566158}.dialog-meta{font-size:12px;color:#858d87}.dialog-actions{display:flex;gap:9px;margin-top:25px}.dialog-close{position:absolute;right:13px;top:10px;background:none;border:0;font-size:27px;color:#657067}
.cover-picker-wrap { margin-top:18px; }
.quantity-field { display:flex; align-items:center; gap:12px; margin-top:14px; font:700 13px "Oswald",sans-serif; text-transform:uppercase; }
.quantity-field input { width:78px; border:2px solid #111; padding:8px; font:600 16px "Source Sans 3",sans-serif; }
.quantity-control { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-top:auto; border-top:2px solid #111; padding-top:9px; font-size:13px; }
.quantity-control button { width:30px; height:30px; padding:0; border:2px solid #111; background:#fff; color:#111; font-size:20px; font-weight:700; line-height:1; }
.quantity-control button:hover { background:#d00000; color:#fff; }
.quantity-control button:disabled { opacity:.35; cursor:not-allowed; }
.cover-picker-wrap>strong { display:block; margin-bottom:8px; font:700 13px "Oswald",sans-serif; text-transform:uppercase; }
.cover-options { display:flex; gap:9px; max-width:100%; padding:3px 3px 10px; overflow-x:auto; }
.cover-option { flex:0 0 58px; height:86px; padding:0; border:3px solid transparent; background:#ddd; overflow:hidden; }
.cover-option img { width:100%; height:100%; object-fit:cover; }
.cover-option.selected { border-color:#d00000; outline:2px solid #111; }
.cover-dialog-card { position:relative; padding:28px; background:#fff; }
.login-dialog-card { position:relative; display:grid; gap:14px; padding:30px; background:#fff; }
.login-dialog-card h2 { margin:0; font-size:32px; }
.login-dialog-card label { display:grid; gap:5px; font-weight:700; }
.login-dialog-card input { width:100%; border:2px solid #111; padding:11px; }
.confirm-dialog { width:min(500px,calc(100% - 32px)); }
.confirm-dialog-card { position:relative; padding:32px; background:#fff; }
.confirm-dialog-card h2 { margin:4px 35px 10px 0; font-size:clamp(25px,5vw,36px); line-height:1.08; }
.confirm-dialog-card p { margin:9px 0; line-height:1.5; }
.confirm-copy-details { color:#59645d; }
.cover-dialog-card h2 { margin:0 0 8px; font-size:30px; }
.cover-options-large { margin:18px 0; flex-wrap:wrap; max-height:390px; }
.cover-options-large .cover-option { flex-basis:92px; height:138px; }
.custom-cover-row { display:flex; gap:8px; margin-top:8px; }
.custom-cover-row input { flex:1; min-width:0; border:2px solid #111; padding:10px; }
@media(max-width:680px){.site-header{min-height:72px;padding:6px 12px}.brand{font-size:16px;gap:8px}.brand-logo{width:48px;height:48px}.brand small{display:none}.ghost-button{font-size:10px;padding:8px}.header-add{font-size:10px;padding:9px}.header-actions{gap:5px}.hero{padding:55px 15px}.capture-card{padding:8px 14px 20px}.capture-tabs{justify-content:flex-start;overflow-x:auto}.tab{white-space:nowrap}.scan-actions{flex-wrap:wrap}.section-heading{align-items:stretch;flex-direction:column}.section-heading h2{font-size:38px}.library-tools{flex-direction:column}.search-box input{width:100%}.isbn-row{flex-direction:column}.manual-form-intro{align-items:flex-start}.manual-fields{grid-template-columns:1fr}.manual-fields .wide-field{grid-column:1}.manual-form-actions{align-items:stretch;flex-direction:column}.manual-form-actions button{width:100%}.library-section{min-height:calc(100vh - 72px);padding:50px 20px}.dialog-card{grid-template-columns:90px 1fr;padding:25px 18px;gap:18px}.dialog-card>img{width:90px}.dialog-actions{flex-direction:column}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}.site-footer{flex-direction:column}.edit-cover-button,.delete-button{opacity:1}.custom-cover-row{flex-direction:column}.cover-dialog-card{padding:25px 16px}}
