:root{--paper:#f8f5ed;--surface:#fffdf8;--ink:#152d42;--muted:#66717a;--border:#dedbd2;--red:#a83339;--green:#e6ece4;--pale-red:#f5e8e5;--cover-field:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 Segoe UI,Arial,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}.book-name,.wordmark,h1,h2,h3{font-family:Georgia,Times New Roman,serif;font-weight:400}h1{font-size:48px;line-height:1.12;margin:0 0 24px}h2{font-size:28px;line-height:1.25;margin:0 0 20px}h3{font-size:21px;margin:12px 0}p{margin:8px 0 16px}.button,button{background:var(--ink);color:var(--surface);border:1px solid var(--ink);border-radius:4px;padding:10px 18px;cursor:pointer;display:inline-block;text-align:center;transition:opacity .15s}.button:hover,button:hover{opacity:.88;text-decoration:none}button:disabled{opacity:.42;cursor:not-allowed}.button.secondary,button.secondary{background:transparent;color:var(--ink);border-color:var(--border)}button.text-button{border:0;background:transparent;color:var(--ink);padding:0;text-align:left}.text-button:hover{color:var(--red)}input,select,textarea{border:1px solid var(--border);border-radius:4px;padding:10px 12px;color:var(--ink);background:var(--surface);width:100%}a:focus-visible,button:focus-visible,input:focus,select:focus,textarea:focus{outline:2px solid var(--red);outline-offset:3px}textarea{min-height:110px;resize:vertical}label{font-size:14px;display:block}label input,label select,label textarea{display:block;margin-top:6px}small{font-size:12px}.muted{color:var(--muted);font-size:14px}.category,.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em}.card,.notice{background:var(--surface);border:1px solid var(--border);border-radius:4px}.notice{padding:14px 18px;font-size:14px}.notice.error{border-color:var(--red);background:var(--pale-red);color:var(--red)}.notice.success{background:var(--green)}.empty{padding:32px;color:var(--muted)}.badge{display:inline-block;background:var(--green);padding:3px 8px;border-radius:4px;font-size:12px;white-space:nowrap}.badge.pending{color:var(--red);background:var(--pale-red)}.wordmark{font-size:30px;line-height:1.2;display:block}.wordmark span{display:block;font:11px/1.5 Segoe UI,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;margin-top:7px}.site-header{max-width:1328px;margin:auto;padding:28px 48px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.site-header nav{display:flex;gap:28px;font-size:14px}.public-shell{max-width:1328px;margin:auto;padding:0 48px}.demo-controls{justify-content:space-between;gap:16px;background:var(--green);padding:8px 12px;margin:16px 0;border-radius:4px}.demo-controls,.demo-controls label{display:flex;align-items:center;font-size:12px}.demo-controls label{gap:12px}.demo-controls select{width:auto;padding:5px 8px;margin:0}.hero{padding:64px 0 80px;display:grid;grid-template-columns:1.6fr 1fr;gap:64px;align-items:center}.hero h1{font-size:56px;line-height:1.12;margin-top:20px;letter-spacing:-.025em}.hero p{max-width:460px;color:var(--muted);margin-bottom:28px}.hero-note{border:1px solid var(--border);background:var(--surface);padding:40px;position:relative;max-width:360px;justify-self:end;width:100%}.hero-note:before{content:"";position:absolute;top:-1px;right:32px;background:var(--red);width:18px;height:48px;clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%)}.note-index{font-size:12px;color:var(--red);letter-spacing:.08em}.hero-note blockquote{font:36px/1.3 Georgia,serif;margin:24px 0}.hero-note p{font-size:13px;margin:0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:24px 0}.section-heading h2{margin:0}.city-control{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}.city-control select{width:auto;margin:0;border:0;border-bottom:1px solid var(--border);background:transparent;font-weight:600}.search-label{margin:28px 0}.search-label input{margin-top:10px;padding:14px 18px}.book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}.book-card{min-width:0}.cover{border:0;border-radius:2px;padding:22px;min-height:310px;width:100%;display:flex;flex-direction:column;justify-content:space-between;text-align:left;position:relative;color:var(--ink);background:var(--green);box-shadow:3px 3px 0 var(--border);overflow:hidden}.cover:before{position:absolute;left:7px;top:0;bottom:0;border-left:1px solid;opacity:.12;content:""}.cover-1{background:#e7e2d5}.cover-2{background:var(--ink);color:var(--paper)}.cover-3{background:var(--pale-red)}.cover strong{font:28px/1.2 Georgia,serif;overflow-wrap:anywhere}.cover-author{font-size:12px}.cover-foot{font-size:11px}.cover-foot small{margin-top:4px;opacity:.65}.category,.cover-foot small{display:block;font-size:10px}.category{color:var(--red);margin-top:22px}.book-name{font-size:23px;line-height:1.2;margin-top:8px;display:block}.book-card p{margin:8px 0}.book-bottom{display:flex;flex-direction:column;margin:16px 0;gap:6px}.stock-note{font-size:12px;color:var(--muted)}.book-card>.secondary{width:100%;font-size:14px}.detail{margin-top:40px;padding:32px;position:relative}.detail p{white-space:pre-wrap;max-width:900px}.close-detail{float:right}.my-reservations{margin-top:64px}.reservation-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;border-bottom:1px solid var(--border)}.reservation-row:last-child{border-bottom:0}.reservation-row p{font-size:13px;margin:4px 0}.reservation-row strong{font-family:Georgia,serif;font-size:19px;font-weight:400}.reservation-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;min-width:240px}.reservation-actions button{font-size:13px}.checkbox{display:flex;align-items:center;gap:8px;font-size:12px}.checkbox input{width:16px;margin:0}.site-footer{padding:40px 0;margin-top:80px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:13px}.site-footer .wordmark{font-size:24px}.site-footer p{margin:0}.footer-links{display:flex;flex-direction:column;gap:12px}.privacy-page{max-width:850px;margin:0 auto;padding:40px 24px 64px;overflow-wrap:anywhere}.privacy-page h1{margin-top:40px;font-size:clamp(32px,6vw,48px)}.privacy-page section{margin:32px 0}.privacy-page p a{text-decoration:underline}.admin-shell{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--ink);color:var(--paper);padding:40px 20px;display:flex;flex-direction:column;flex-shrink:0;position:relative}.sidebar:before{content:"";position:absolute;left:0;top:44px;width:10px;height:28px;background:var(--red)}.sidebar .wordmark{font-size:27px;padding:0 12px 40px}.sidebar .wordmark span{color:#b4bdc5;font-size:10px;letter-spacing:.1em}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav button{color:var(--paper);border:0;border-radius:4px;text-align:left;font-size:14px;background:transparent;padding:12px}.sidebar nav button.active{background:#2a4053}.sidebar .back-link{font-size:13px;margin:36px 12px}.sidebar-foot{font-size:12px;opacity:.6;margin:40px 12px 0}.admin-main{flex:1 1;min-width:0}.admin-header{display:flex;align-items:center;gap:28px;padding:24px 32px;border-bottom:1px solid var(--border);background:var(--surface)}.admin-header h1{font-size:32px;margin:0}.admin-header>.badge{margin-left:auto}.admin-content{padding:8px 32px 48px;max-width:1400px;margin:auto}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0 36px}.metrics>.card{padding:20px 24px}.metrics span{font-size:12px;color:var(--muted)}.metrics strong{display:block;font:36px/1.3 Georgia,serif;margin-top:8px}.today-grid{display:grid;grid-template-columns:1.8fr 1fr;gap:28px}.today-grid .section-heading{margin-top:0}.today-grid h2{font-size:24px}.draft-list{padding:20px}.draft-list .text-button{width:100%;display:block;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:16px}.draft-list strong{display:block;font:18px/1.2 Georgia,serif}.draft-list span{font-size:12px;color:var(--muted)}.integration-note{padding:20px 24px;margin-top:36px}.integration-note p{font-size:14px;max-width:800px;color:var(--muted);margin-bottom:0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}thead{background:var(--paper);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}td,th{padding:14px 20px;border-bottom:1px solid var(--border)}td small{display:block;color:var(--muted);margin-top:4px}td strong{font:18px/1.25 Georgia,serif}.editor{padding:28px;margin-bottom:28px}.editor>label{margin:20px 0}.editor>p{font-size:14px;color:var(--muted)}.editor>a{color:var(--red);text-decoration:underline;font-size:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}.form-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.csv-input{font-family:Consolas,monospace;font-size:13px;min-height:200px}.import-editor{overflow-wrap:anywhere}.import-editor input,.import-editor select{max-width:100%}.import-example{display:block;font-size:12px;padding-top:5px}.import-paste{margin:20px 0}.import-paste summary{cursor:pointer;margin-bottom:12px}.import-editor .form-grid{margin-bottom:20px}.import-samples{margin:16px 0 24px}.import-preview{margin-top:24px;border-top:1px solid var(--border);padding-top:12px}.editor .section-heading{margin-top:0}.editor .section-heading h2{font-size:26px}@media (max-width:1100px){.today-grid{grid-template-columns:1fr}.book-grid{grid-template-columns:repeat(3,1fr)}.hero h1{font-size:44px}.reservation-actions{min-width:220px}.admin-header{flex-wrap:wrap;gap:16px}.admin-header>.badge{margin-left:0}.sidebar{width:210px}}@media (max-width:760px){h1{font-size:36px}.site-header{padding:20px;align-items:flex-start;gap:20px}.wordmark{font-size:25px}.site-header nav{gap:10px;flex-wrap:wrap;font-size:12px;justify-content:flex-end}.public-shell{padding:0 20px}.hero{grid-template-columns:1fr;padding:40px 0;gap:28px}.hero h1{font-size:40px}.hero-note{max-width:none;padding:24px}.hero-note blockquote{font-size:28px}.hero-note p{display:none}.section-heading{align-items:flex-start;flex-wrap:wrap;gap:12px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}.cover{min-height:240px;padding:16px}.cover strong{font-size:22px}.book-name{font-size:20px}.site-footer{gap:20px}.demo-controls,.site-footer{align-items:flex-start;flex-direction:column}.admin-shell{display:block}.sidebar{width:100%;padding:20px}.sidebar .wordmark{padding:0 0 20px}.sidebar nav{flex-direction:row;overflow:auto;gap:4px;padding-bottom:6px}.sidebar nav button{white-space:nowrap;font-size:12px;padding:9px 10px}.sidebar .back-link{margin:14px 0 0;display:block}.sidebar-foot,.sidebar:before{display:none}.admin-header{padding:20px}.admin-header h1{font-size:30px}.admin-content{padding:4px 20px 32px}.metrics{gap:8px}.metrics>.card{padding:12px}.metrics span{font-size:10px}.metrics strong{font-size:28px}.reservation-row{align-items:flex-start;flex-direction:column;padding:18px}.reservation-actions{align-items:flex-start;min-width:0}.form-grid{grid-template-columns:1fr}.editor{padding:20px}td,th{padding:12px;min-width:110px}.detail{padding:20px}.hero-note:before{right:24px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}button{transition:none}}.stock-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;min-width:0}.stock-panel>.card{min-width:0}.stock-panel .table-wrap{max-width:100%;overflow:auto}.stock-panel td{overflow-wrap:anywhere}.book-cover-frame{width:100%;aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;padding:22px;margin:0 0 18px;min-width:0;overflow:hidden;background:var(--cover-field);color:var(--ink);border:1px solid var(--border);border-radius:3px}button.book-cover-frame:hover{opacity:1;border-color:var(--red)}.book-cover-frame img{width:100%;height:100%;object-fit:contain;display:block}.book-cover-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--muted)}.book-cover-placeholder>span{font:64px/1 Georgia,serif;opacity:.22}.book-cover-placeholder small{letter-spacing:.08em}.book-cover-compact{width:200px}.book-detail-cover{float:right;margin:12px 0 16px 24px}.cover-review-intro{display:flex;align-items:start;justify-content:space-between;gap:24px}.cover-review-intro>div{max-width:680px}.cover-review-intro button{flex-shrink:0}.cover-review-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}button.cover-count{text-align:left;background:var(--surface);padding:14px 18px}.cover-count strong{display:block;font-size:26px;font-weight:400}.cover-count span{font-size:13px}button.cover-count.selected{border-color:var(--ink);box-shadow:inset 0 -2px var(--ink)}.cover-review-filters{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:16px;margin:20px 0}.cover-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}.cover-review-card{min-width:0;overflow:hidden}.cover-review-card .book-cover-frame{height:260px;aspect-ratio:auto;width:calc(100% - 32px);padding:16px;margin:16px auto 0}.cover-review-details{padding:18px}.cover-review-removal{margin-bottom:12px;height:44px;display:flex;align-items:center}.cover-review-removal>button{width:100%;min-height:44px;font-size:14px}.cover-review-details h3{font-size:21px;line-height:1.25;overflow-wrap:anywhere}.cover-review-details>p{font-size:14px}.cover-source-link{display:inline-block;font-size:13px;color:var(--red);margin:0 0 16px;text-decoration:underline}.cover-comment{min-height:64px;font-size:14px}.cover-review-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 8px;margin:16px 0}.cover-review-actions>button{font-size:13px;padding:9px 12px;min-height:40px}.cover-review-actions>.text-button{padding:6px 0}.cover-replacement{border-top:1px solid var(--border);padding-top:12px}.cover-replacement summary{font-size:13px;cursor:pointer}.cover-replacement label{margin:12px 0}.cover-replacement input[type=file]{padding:8px;font-size:12px}.cover-replacement small{display:block;color:var(--muted)}.cover-review-receipt{margin-bottom:0;font-size:12px!important}.cover-load-more{display:block;margin:24px auto}.cover-review-dialog{max-width:min(720px,calc(100vw - 32px));padding:24px;color:var(--ink)}.cover-review-dialog>img{display:block;max-width:100%;width:auto;height:auto;max-height:65vh;object-fit:contain;margin:20px auto}.cover-review-dialog::backdrop{background:rgb(21 45 66/.55)}@media (max-width:1100px){.cover-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cover-review-filters{grid-template-columns:1fr 1fr}.cover-review-filters>label:first-child{grid-column:1/-1}}@media (max-width:680px){.book-cover-frame{padding:12px}.book-detail-cover{float:none;margin:12px auto 20px;width:200px}.cover-review-intro{flex-direction:column;gap:8px}.cover-review-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cover-review-filters,.cover-review-grid{grid-template-columns:1fr}.cover-review-filters>label:first-child{grid-column:auto}.cover-review-actions>button{min-height:44px}}.button.id-login{color:#fff;background:linear-gradient(180deg,#315b83,#1b3b5d);border:1px solid #173553;border-radius:7px;box-shadow:0 3px 0 #102b47,0 6px 14px #172c4320,inset 0 1px 0 #ffffff35;font-weight:650;transition:transform .14s ease,box-shadow .14s ease}.button.id-login:hover{color:#fff;transform:translateY(-1px);box-shadow:0 4px 0 #102b47,0 8px 18px #172c4328}.button.id-login:active{transform:translateY(2px);box-shadow:0 1px 0 #102b47}.button.id-login:focus-visible{outline:3px solid #528cc4;outline-offset:4px}.withdrawal-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:24px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--ink);overflow:auto}.withdrawal-dialog::backdrop{background:rgb(21 45 66/.55)}.withdrawal-dialog h2{margin-top:0}.withdrawal-note{margin:10px 0;padding:12px 14px;background:#f0f3f6;border-left:3px solid #315b83}.withdrawal-note p{margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}.withdrawn-books{display:grid;gap:16px}.withdrawn-book{padding:20px}.withdrawn-book h2{margin:0;font-size:22px}.access-check{max-width:600px;margin:80px auto;padding:24px}.access-check>*{display:block;margin:14px 0}@media (prefers-reduced-motion:reduce){.button.id-login{transition:none}}