:root{--forest:#17372d;--deep:#0f2720;--green:#2d7659;--leaf:#dae9c6;--cream:#f7f7f0;--ink:#1a2d25;--muted:#768079;--line:#e3e8df;--white:#fff;--shadow:0 8px 35px #1c392b12}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream)}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{height:78px;padding:0 30px;display:flex;align-items:center;gap:18px;background:var(--white);border-bottom:1px solid var(--line);position:relative;z-index:500}.brand{display:flex;align-items:center;gap:12px}.brand-icon{height:43px;width:43px;display:grid;place-items:center;background:var(--forest);color:white;font-size:29px;font-weight:800;border-radius:13px;position:relative}.brand-icon span{position:absolute;color:#f7d578;font-size:15px;right:5px;top:0}.brand strong{display:block;font-size:24px;line-height:1;font-weight:800;letter-spacing:-1px}.brand small{display:block;margin-top:4px;font-size:10px;font-weight:800;letter-spacing:2.1px;color:var(--green)}.top-note{flex:1;margin-left:30px;color:#7d887e;font-size:13px}.button{border:0;border-radius:11px;padding:13px 17px;font-weight:700;transition:transform .15s,background .15s;white-space:nowrap}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--forest);color:white}.button-primary:hover{background:#255541}.button-outline{border:1px solid #cbd9c9;background:var(--white);color:var(--forest)}.layout{display:grid;grid-template-columns:410px minmax(0,1fr);height:calc(100vh - 78px);min-height:530px}.sidebar{background:#fff;display:flex;flex-direction:column;min-height:0;overflow:hidden;border-right:1px solid var(--line)}.intro{padding:28px 28px 16px;background:linear-gradient(153deg,#fbfcf6 60%,#edf5e5)}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--green);font-weight:900}.intro h1{font-family:Georgia,serif;font-size:39px;line-height:1.08;margin:13px 0 12px;letter-spacing:-1.5px;color:var(--forest)}.intro h1 em{color:#548e5b;font-weight:400}.intro p{font-size:13px;line-height:1.6;color:#6f7e70;max-width:310px;margin:0}.controls{padding:17px 25px 18px;border-bottom:1px solid var(--line)}label{display:block;font-size:11px;font-weight:750;margin:0 0 7px;color:#58695c}.search-wrap{display:flex;border:1px solid #dae5da;border-radius:10px;align-items:center;padding:0 10px;background:#f9fbf7}.search-wrap span{font-size:23px;line-height:1;color:#96a897}.search-wrap input{width:100%;border:0;outline:none;padding:11px 8px;background:transparent;color:var(--ink);font-size:13px}.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.filter-row select{width:100%;padding:10px 26px 10px 9px;border:1px solid #dce6db;border-radius:9px;background:#fff;color:var(--ink);font-size:12px}.list-header{padding:16px 25px 11px;display:flex;align-items:center;justify-content:space-between}.list-header strong{font-size:14px}.list-header span{color:#90a094;font-size:11px}.place-list{flex:1;overflow:auto;padding:0 17px 12px 25px}.empty{margin:13px 0;padding:23px 20px;border:1px dashed #ccdcc6;border-radius:15px;background:#fbfcf8;text-align:center}.empty .emoji{font-size:37px}.empty h3{font-size:16px;margin:10px 0 5px}.empty p{font-size:12px;color:#7c897e;margin:0 0 15px;line-height:1.5}.place-card{padding:14px;border:1px solid var(--line);border-radius:13px;display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;margin:8px 0;background:#fff;box-shadow:0 3px 11px #0e1d1309}.place-card:hover{border-color:#9cc6a6}.place-art{height:56px;border-radius:9px;background:#f0f4e8;display:flex;align-items:center;justify-content:center;font-size:29px;overflow:hidden}.place-art img{width:100%;height:100%;object-fit:cover}.place-name{margin:0;color:var(--forest);font-size:14px;line-height:1.2;overflow-wrap:anywhere}.place-town{font-size:12px;color:#78877a;margin-top:4px}.status{display:inline-block;margin-top:7px;font-size:10px;padding:3px 6px;border-radius:5px;background:#e4f1e9;color:#286345;font-weight:700}.status.pending{background:#fff3df;color:#9d6a19}.status.osm{background:#e9eff7;color:#3d5d85}.place-actions{display:flex;gap:10px;margin-top:9px}.text-button{border:0;background:transparent;padding:0;font-size:11px;font-weight:750;color:#397c5d}.side-bottom{padding:13px 25px 17px;border-top:1px solid var(--line);background:#fcfdfa}.side-bottom .button{width:100%;font-size:12px;padding:10px}.side-bottom p{font-size:10px;color:#93a092;line-height:1.5;margin:9px 0 0}.map-section{position:relative;min-width:0;min-height:430px;background:#e8eee2}.map-section #map{height:100%;width:100%}.map-badge{position:absolute;z-index:420;top:22px;right:22px;border-radius:30px;background:#fff;box-shadow:var(--shadow);font-size:12px;color:#4e6c52;padding:11px 17px;font-weight:750}.map-hint{position:absolute;left:15px;bottom:15px;z-index:420;border-radius:7px;background:#ffffffdb;color:#7a8779;padding:5px 9px;font-size:10px;pointer-events:none}.map-notice{position:absolute;z-index:450;top:22px;left:50%;transform:translateX(-50%);background:var(--forest);color:#fff;border-radius:14px;padding:13px 42px 13px 18px;box-shadow:var(--shadow);min-width:260px;max-width:90%;text-align:center}.map-notice strong{display:block;font-size:13px}.map-notice span{font-size:12px;color:#d2e2cf}.map-notice-close{position:absolute;right:9px;top:8px;background:transparent;color:white;border:0;font-size:15px}.leaflet-control-attribution{font-size:10px!important}.book-marker{background:var(--forest);border:3px solid white;width:35px;height:35px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 4px 12px #17372d44;display:flex;align-items:center;justify-content:center}.book-marker span{transform:rotate(45deg);font-size:16px}.book-marker.osm{background:#5b7892}.book-marker.pending{background:#c59444}.modal{border:0;padding:0;width:min(550px,calc(100% - 20px));max-height:calc(100vh - 30px);border-radius:20px;box-shadow:0 24px 90px #0a1c165c;overflow:auto}.modal::backdrop{background:#0b1f1ba8}.modal-inner{padding:29px}.modal-heading{display:flex;align-items:start;justify-content:space-between}.modal h2{font:31px Georgia,serif;color:var(--forest);margin:6px 0 0}.modal p{font-size:13px;color:#728073;margin:10px 0 21px;line-height:1.5}.modal label{margin-top:14px}.modal input,.modal select,.modal textarea{display:block;width:100%;padding:12px;border:1px solid #d7e1d5;border-radius:10px;outline-color:#3f8861;background:white;color:var(--ink);font-size:14px}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.icon-button{border:0;background:#edf3ec;color:var(--forest);border-radius:50%;width:30px;height:30px}.coords{background:#f5f8f0;padding:10px;border-radius:9px;margin:15px 0 0;font-size:11px;color:#4d7557}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.toast{position:fixed;z-index:800;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;transition:opacity .2s,transform .2s;background:var(--forest);color:#fff;border-radius:12px;padding:11px 20px;pointer-events:none;box-shadow:var(--shadow);font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:850px){.topbar{height:72px;padding:0 14px}.top-note{display:none}.topbar>.button{margin-left:auto;font-size:12px;padding:10px}.layout{display:flex;flex-direction:column;height:auto;min-height:calc(100vh - 72px)}.sidebar{overflow:visible;flex:none}.intro{padding:20px}.intro h1{font-size:31px}.controls{padding:14px 20px}.list-header{padding:11px 20px}.place-list{max-height:210px;overflow:auto;padding:0 20px}.side-bottom{padding:10px 20px}.map-section{min-height:55vh;height:60vh}.map-badge{top:12px;right:12px}.map-notice{top:12px}.modal-inner{padding:22px}}@media(max-width:420px){.brand strong{font-size:20px}.brand-icon{height:36px;width:36px}.topbar>.button{font-size:11px;padding:9px}.form-two{grid-template-columns:1fr}.intro p{font-size:12px}}

/* Community book inventory */
[hidden]{display:none!important}
.demo-disclaimer{display:flex;flex-direction:column;gap:3px;border:1px solid #f0d9a0;background:#fffaf0;border-radius:9px;padding:10px 11px;margin-bottom:11px;font-size:11px;color:#8c611f}
.demo-disclaimer strong{font-size:11px}.demo-disclaimer span{line-height:1.5}
.inventory-tally{font-size:11px;color:#486950;font-weight:700;margin-top:9px}
.place-actions{flex-wrap:wrap;row-gap:6px}
.empty-actions{display:flex;flex-direction:column;gap:8px}.empty-actions .button{font-size:12px;white-space:normal;padding:10px}
.library-modal{width:min(750px,calc(100% - 22px));max-height:calc(100dvh - 32px)}
.library-subtitle{font-size:12px;color:#788777;margin-top:7px}.sample-title{color:#9a6d1d!important}
.inventory-notice{font-size:12px;color:#695d3f;background:#fffaf0;border:1px solid #f1e3bb;border-radius:11px;padding:11px 13px;margin-top:17px;line-height:1.5}
.inventory-notice strong{display:block;font-size:12px;color:#7f591f}
.inventory-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:18px 0}
.inventory-summary>div{display:flex;flex-direction:column;gap:2px;background:#f4f8f0;padding:14px 12px;border-radius:12px}
.inventory-summary strong{font-size:23px;line-height:1;color:#275e42}
.inventory-summary span{font-size:10px;line-height:1.4;color:#677b68}
.library-toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.library-toolbar .button{font-size:12px;padding:11px 13px}.library-toolbar .button:disabled{cursor:not-allowed;opacity:.4;transform:none}
.book-form-wrap{border:1px solid #c9dec7;background:#f9fcf7;border-radius:13px;padding:14px;margin:15px 0}
.book-form-wrap h3{margin:0;font-size:16px;color:var(--forest)}.book-form-wrap p{margin:4px 0 13px;font-size:11px}
.inventory-filters{display:grid;grid-template-columns:minmax(0,1fr) 155px;gap:9px;margin:19px 0 13px}
.inventory-filters .search-wrap{background:#fff}
.inventory-filters select{font-size:12px;border:1px solid #dce6db;border-radius:10px;padding:0 9px;background:#fff;color:var(--forest)}
.book-list{display:grid;gap:10px;max-height:290px;overflow:auto;scrollbar-width:thin;padding:2px 2px 4px}
.book-card{border:1px solid #dfe8dc;border-radius:13px;padding:13px;display:grid;grid-template-columns:39px 1fr;gap:10px;background:#fff;min-width:0}
.book-card.not-on-shelf{opacity:.82;background:#f9faf7}
.book-icon{height:39px;display:grid;place-items:center;background:#f0f5ed;border-radius:10px;font-size:23px}
.book-card-main{min-width:0}.book-card-main>strong{display:block;color:#263a2e;font-size:14px;overflow-wrap:anywhere}.book-byline{font-size:12px;color:#778476;margin-top:3px}.isbn{color:#829183;font-size:10px;margin-top:3px}
.book-confidence{font-size:11px;font-weight:700;margin-top:8px;line-height:1.3}.book-confidence.fresh{color:#2b7953}.book-confidence.aging{color:#b0772c}.book-confidence.stale{color:#b75c40}.book-confidence.gone{color:#777}
.book-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.mini-button{padding:6px 9px;border-radius:7px;background:#fff;color:#46614c;border:1px solid #d6e2d5;font-weight:750;font-size:11px}
.mini-button:hover{background:#f1f8ef}.mini-button.success{color:#226849;background:#f1f8f0;border-color:#c9e0c7}.mini-button.muted{color:#8c6355;border-color:#ebd6cd}
.book-empty{min-height:150px;border:1px dashed #d4e0d0;border-radius:13px;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;padding:22px;text-align:center}
.book-empty .emoji{font-size:29px}.book-empty strong{font-size:14px}.book-empty span{color:#849086;font-size:12px;max-width:290px}
.inventory-legend{border-left:3px solid #b4ceb2;padding:8px 12px;margin-top:14px;font-size:11px;color:#68766a;line-height:1.55;background:#f8faf6}.inventory-legend strong{display:block;color:#416344}
.activity-panel{border-top:1px solid #edf0e9;margin-top:16px;padding-top:12px;font-size:12px}.activity-panel summary{cursor:pointer;font-weight:750;color:#417250}.activity-panel p{margin:10px 0;font-size:11px}
.activity-line{display:flex;justify-content:space-between;align-items:start;gap:10px;padding:8px 0;border-bottom:1px solid #edf0e9;font-size:11px}.activity-line strong{font-weight:650}.activity-line time{white-space:nowrap;color:#929c91}
.library-bottom{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:17px}.library-bottom .button{font-size:12px;padding:9px 14px}
@media(max-width:520px){.library-modal .modal-inner{padding:17px}.library-modal h2{font-size:25px}.inventory-summary{gap:5px}.inventory-summary>div{padding:11px 9px}.inventory-summary strong{font-size:20px}.inventory-summary span{font-size:9px}.library-toolbar .button{flex:1;white-space:normal;padding:10px}.inventory-filters{grid-template-columns:1fr}.inventory-filters select{padding:10px}.book-list{max-height:34vh}.book-card{grid-template-columns:31px 1fr;padding:10px}.book-icon{height:31px;font-size:19px}.mini-button{font-size:10px}.activity-line{flex-wrap:wrap}}

.backup-button{background:transparent;border:0;color:#47735c;font-size:11px;margin-top:10px;text-decoration:underline;padding:5px 0}.backup-button:hover{color:#183e2d}

/* ISBN-required registration and grouped edition listings */
.isbn-note{font-size:11px;color:#596b5d;margin:7px 0 11px;line-height:1.45}
.isbn-note.match{background:#e8f4ea;border:1px solid #b2d9bc;border-radius:8px;color:#236445;padding:9px}
.isbn-note.error{color:#a84639}.isbn-note.good{color:#2d7752}
.copy-tally{font-size:11px;font-weight:750;color:#426d50;margin-top:7px}
.book-form-wrap input[readonly]{background:#f0f4f0;color:#68816b}
.book-form-wrap select:disabled{background:#f0f4f0;color:#68816b}

.honeypot{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}
.modal p.suggestion-privacy{font-size:11px;color:#667b6c;margin-top:10px;margin-bottom:0}


/* BookSpots V6: editorial, bookshop-inspired design. All existing app controls remain intact. */
:root{--forest:#233d3b;--deep:#1a302f;--green:#8b523e;--leaf:#f0d7b3;--cream:#f4eee3;--ink:#253735;--muted:#766c61;--line:#d9cdbc;--white:#fffdf7;--shadow:0 12px 28px rgba(28,35,33,.10)}
html,body{background:var(--cream)}
body{font-family:Arial,"Helvetica Neue",sans-serif;letter-spacing:-.01em}
button,select,input,textarea{font-family:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d77c55;outline-offset:3px}
.topbar{background:#203b39;color:#f9f4e9;border-bottom:4px solid #d27a53;padding:0 30px;height:84px;gap:22px}
.brand{gap:14px;min-width:max-content}
.brand-icon{width:41px;height:44px;background:#f2dec1;border-radius:2px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;box-shadow:5px 5px 0 #bd7859}
.logo-pages{height:29px;width:31px;display:flex;align-items:flex-end;justify-content:space-between;position:static!important;transform:rotate(0)!important;font-size:0!important}
.logo-pages:before,.logo-pages i,.logo-pages b{content:"";display:block;height:25px;width:8px;background:#bd7859;border-radius:1px 1px 0 0;position:static!important;transform:none!important}
.logo-pages i{height:29px;background:#203b39}.logo-pages b{height:22px;background:#74887b}
.brand strong{color:#f8efe0;font-family:Georgia,"Times New Roman",serif;font-size:27px;letter-spacing:-1.2px;font-weight:700;text-transform:none}
.brand-dot{color:#d77c55}
.brand small{font-family:Arial,sans-serif;color:#d4c6ac;font-size:8.5px;letter-spacing:1.65px;font-weight:650;margin-top:5px}
.top-note{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:16px;color:#e4d7c2;opacity:.88;margin-left:25px}
.button{border-radius:3px;font-size:12px;letter-spacing:.02em;transition:background .2s, color .2s;transform:none!important}
.button-primary{background:#d37955;color:#1d302f;border:1px solid #d37955}
.button-primary:hover{background:#e8ac81;color:#162625}
.button-outline{background:transparent;color:var(--forest);border:1px solid #86796b}
.button-outline:hover{background:#efe3d2}
.topbar .button{background:#f6dfbb;color:#203b39;border:1px solid #f6dfbb;text-transform:uppercase;letter-spacing:.12em;padding:12px 19px;font-size:10px;box-shadow:4px 4px 0 #b96b4b}
.topbar .button:hover{background:#fff3df}
.layout{grid-template-columns:minmax(330px,390px) minmax(0,1fr);height:calc(100vh - 84px);background:var(--cream)}
.sidebar{background:#f8f2e8;border-right:1px solid #cfbea9}
.intro{background:#efdfc7;padding:30px 27px 26px;border-bottom:1px solid #cfb79e;position:relative}
.intro:after{content:"✳";position:absolute;top:19px;right:23px;color:#bb6a4b;font-size:33px;font-weight:400;opacity:.8}
.eyebrow{font-size:10px;color:#aa5e45;font-weight:800;letter-spacing:2.35px;text-transform:uppercase}
.intro h1{font-family:Georgia,"Times New Roman",serif;font-size:47px;letter-spacing:-2.45px;line-height:.99;margin:21px 0 17px;font-weight:400;color:#263f3d}
.intro h1 em{color:#a65d42;font-style:italic;font-weight:400}
.intro p{font:14px/1.6 Georgia,"Times New Roman",serif;max-width:325px;color:#645d53}
.controls{border-bottom:1px solid var(--line);padding:20px 26px 18px;background:#f8f2e8}
.controls label{font-size:9px;text-transform:uppercase;font-weight:750;letter-spacing:1.65px;color:#64564c}
.search-wrap{border:0;border-bottom:2px solid #334d49;border-radius:0;background:transparent;padding:0}
.search-wrap span{color:#ad694d}
.search-wrap input{padding:13px 6px;color:#253c3a;font-family:Georgia,"Times New Roman",serif;font-size:14px}
.search-wrap input::placeholder{color:#978779;opacity:1}
.filter-row{margin-top:18px;gap:12px}
.filter-row select{border:1px solid #d8caba;border-radius:2px;background:#fffaf0;padding:10px 20px 10px 9px;font-size:11px;color:#3d4b47}
.list-header{padding:17px 26px 11px;background:#f8f2e8}
.list-header strong{font:21px Georgia,"Times New Roman",serif;color:#293f3b}
.list-header span{font-size:10px;font-weight:700;letter-spacing:1.6px;color:#996446}
.place-list{padding:0 24px 16px;background:#f8f2e8}
.place-card{border:0;border-top:1px solid #d7c8b6;background:transparent;border-radius:0;padding:15px 0 17px;box-shadow:none;gap:14px;grid-template-columns:57px minmax(0,1fr);margin:0}
.place-card:hover{border-color:#ab745b;background:#f7ede0}
.place-art{border-radius:2px;background:#e5d0b4;height:57px;font-family:Georgia,serif;filter:grayscale(.1)}
.place-name{font:18px/1.2 Georgia,"Times New Roman",serif;color:#27403e}
.place-town{font-size:11px;color:#76675a;margin-top:5px}
.status{background:transparent!important;color:#8c563e!important;border:1px solid #b18e74;border-radius:2px;padding:3px 6px;margin-top:9px;font-size:9px;text-transform:uppercase;letter-spacing:.4px}
.inventory-tally{font-size:10px;color:#576d60;letter-spacing:.01em}
.place-actions{gap:14px;margin-top:12px}
.text-button{color:#98593f;font-size:11px;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.side-bottom{padding:17px 26px 22px;border-top:1px solid #d6c8b4;background:#eee2cf}
.demo-disclaimer{border:0;border-left:3px solid #b2694d;background:#f9efe0;border-radius:0;color:#765840}
.demo-disclaimer strong{letter-spacing:.7px;font-size:10px}
.demo-disclaimer span{font-size:11px}
.side-bottom .button{margin:3px 0 4px;text-align:left;border-color:#b4a08b}
.side-bottom p{color:#756b5f}
.map-section{background:#e4ded0}
.map-section #map .leaflet-tile{filter:sepia(.28) saturate(.66) contrast(.98)}
.map-badge{background:#f5e6cc;border:1px solid #a48b70;border-radius:2px;box-shadow:4px 4px 0 rgba(37,61,57,.15);color:#304c45;letter-spacing:1.2px;font-size:10px;text-transform:uppercase;padding:12px 16px}
.map-hint{border-radius:0;color:#665d50;background:#fdf7e7d9}
.map-notice{background:#203b39;border-radius:2px}
.book-marker{background:#ab5c3c;border:2px solid #f6e8d7;border-radius:2px 2px 2px 0;width:36px;height:36px;box-shadow:3px 4px 0 #213b3966}
.book-marker.osm{background:#486b72}.book-marker.pending{background:#ac863a}
.book-marker span{font-size:18px}
.empty{background:#efe0cb;border:0;border-radius:2px;padding:20px}
.empty h3{font:22px Georgia,serif}
.modal{border-radius:4px;box-shadow:12px 12px 0 #283e3870;background:#fffaf1}
.modal::backdrop{background:#152923b8}
.modal-inner{padding:28px 31px}
.modal h2{font:36px Georgia,"Times New Roman",serif;color:#263e3b;letter-spacing:-1.2px}
.modal p{color:#615d55}
.modal label{color:#655346;text-transform:uppercase;letter-spacing:.6px;font-size:10px}
.modal input,.modal select,.modal textarea{background:#fffdf7;border-radius:2px;border-color:#ccbca7}
.icon-button{background:#e8d8c4;border-radius:2px;color:#253e3b}
.coords{background:#efe3d0;border-radius:2px}
.toast{background:#203b39;border-radius:3px}
.inventory-notice{background:#f0e4d0;border:0;border-left:4px solid #b76c4e;border-radius:0;color:#544a3d}
.inventory-notice strong{color:#785238}
.inventory-summary{border-top:1px solid #d2c3ae;border-bottom:1px solid #d2c3ae;gap:0}
.inventory-summary>div{background:transparent;border-radius:0;border-right:1px solid #d2c3ae;padding:18px 13px}
.inventory-summary>div:last-child{border-right:0}
.inventory-summary strong{font:32px Georgia,serif;color:#203b39}
.inventory-summary span{text-transform:uppercase;letter-spacing:.8px;font-size:9px;color:#746655}
.book-form-wrap{background:#f8eddd;border:1px solid #d8c3a9;border-radius:2px}
.book-form-wrap h3{color:#203b39;font-family:Georgia,serif;font-size:21px}
.inventory-filters{margin-top:20px}
.inventory-filters .search-wrap{border:0;border-bottom:2px solid #36534f;background:transparent}
.inventory-filters select{border-radius:2px;border-color:#cfbda6}
.book-list{gap:0;max-height:330px}
.book-card{border:0;border-bottom:1px solid #decfbc;border-radius:0;padding:16px 6px;background:transparent;grid-template-columns:39px 1fr}
.book-card.not-on-shelf{background:#f5efe7}
.book-icon{background:#e7d7c0;border-radius:2px}
.book-card-main>strong{font:21px/1.18 Georgia,serif;color:#233c39}
.book-byline{color:#675f55}
.isbn{color:#9c7460}
.book-confidence.fresh{color:#38725a}.book-confidence.aging{color:#a66a34}.book-confidence.stale{color:#ac563f}
.mini-button{border-radius:2px;background:#fffaf0;border-color:#cab69d;font-size:10px;color:#3b4f48}
.mini-button.success{background:#e4eae0;border-color:#abbfb1;color:#315746}
.book-empty{background:#f1e7d7;border-radius:2px;border-color:#bfac95}
.inventory-legend{border-color:#b86e51;background:#f5ecdf;color:#716353}
.activity-panel{border-color:#d0c1ad}.activity-panel summary{color:#8d513b}
.library-bottom{border-top:1px solid #e1d3c0;padding-top:16px}
@media(max-width:850px){
.topbar{height:72px;padding:0 18px;border-bottom-width:3px}.layout{min-height:calc(100dvh - 72px);height:auto}.intro{padding:23px 22px 19px}.intro h1{font-size:37px;margin:14px 0}.intro p{font-size:13px}.controls{padding:16px 22px}.list-header{padding:13px 22px 10px}.place-list{padding:0 22px 16px;max-height:250px}.side-bottom{padding:15px 22px}.map-section{height:58vh;min-height:380px}.map-badge{font-size:9px;top:12px;right:12px;padding:9px}.modal-inner{padding:23px}.topbar>.button{font-size:9px;padding:11px;box-shadow:3px 3px 0 #b96b4b}
}
@media(max-width:520px){
.brand-icon{width:31px;height:34px;box-shadow:3px 3px 0 #b96b4b}.logo-pages{transform:scale(.75)!important;transform-origin:bottom center!important}.brand{gap:10px}.brand strong{font-size:23px}.brand small{letter-spacing:.9px;font-size:7px}.topbar>.button{font-size:9px;letter-spacing:.02em;padding:9px 10px}.intro h1{font-size:34px}.intro:after{font-size:24px;right:18px;top:16px}.modal h2{font-size:28px}.inventory-summary strong{font-size:26px}.library-modal .modal-inner{padding:17px}.book-card-main>strong{font-size:19px}
}


/* BookSpots V7: cleaner green/black style per feedback */
:root{
  --forest:#17372d;
  --deep:#10261f;
  --green:#2f6b57;
  --light-green:#dce9e2;
  --cream:#f7faf8;
  --ink:#111111;
  --muted:#566560;
  --line:#d9e4dd;
  --white:#ffffff;
  --shadow:0 10px 24px rgba(23,55,45,.08)
}
html,body{background:var(--cream)}
body,button,select,input,textarea{font-family:"Inter","Segoe UI",sans-serif;letter-spacing:0}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #7eac96;outline-offset:2px}
.topbar{background:var(--white);color:var(--ink);border-bottom:1px solid #e6efea;height:80px}
.brand-icon{background:var(--forest);box-shadow:none;border-radius:10px}
.logo-pages:before,.logo-pages i,.logo-pages b{background:var(--light-green)}
.logo-pages i{background:var(--white)}
.logo-pages b{background:#8fb49f}
.brand strong{color:var(--forest);font-family:"Inter","Segoe UI",sans-serif;font-weight:800;letter-spacing:-1px}
.brand-dot{color:var(--green)}
.brand small{color:var(--green);font-family:"Inter","Segoe UI",sans-serif;font-size:9px;font-weight:700;letter-spacing:1.6px}
.top-note{font-family:"Inter","Segoe UI",sans-serif;font-style:normal;color:#60706a;font-size:13px}
.button,.button-primary,.button-outline,.mini-button,.icon-button{border:0!important;box-shadow:none!important;border-radius:12px}
.button{font-size:12px;font-weight:700}
.button-primary{background:var(--forest);color:var(--white)}
.button-primary:hover{background:var(--green);color:var(--white)}
.button-outline{background:var(--light-green);color:var(--forest)}
.button-outline:hover{background:#cfe1d7}
.topbar .button{background:var(--forest);color:var(--white);text-transform:none;letter-spacing:0;padding:12px 18px}
.topbar .button:hover{background:var(--green)}
.layout{grid-template-columns:minmax(330px,390px) minmax(0,1fr);height:calc(100vh - 80px);background:var(--cream)}
.sidebar{background:var(--white);border-right:1px solid #e7efea}
.intro{background:var(--white);padding:28px 27px 22px;border-bottom:1px solid #e7efea}
.intro:after{content:none}
.eyebrow{color:var(--green);font-size:10px;font-weight:800;letter-spacing:2px}
.intro h1{font-family:"Inter","Segoe UI",sans-serif;font-size:42px;letter-spacing:-2px;line-height:1.02;margin:16px 0 12px;font-weight:800;color:var(--forest)}
.intro h1 em{color:var(--green);font-style:normal;font-weight:700}
.intro p{font-family:"Inter","Segoe UI",sans-serif;font-size:14px;line-height:1.6;color:#5d6b66;max-width:330px}
.controls,.list-header,.place-list{background:var(--white)}
.controls{border-bottom:1px solid #edf2ef}
.controls label,.modal label{font-size:10px;text-transform:uppercase;font-weight:700;letter-spacing:1.2px;color:#60706a}
.search-wrap{border:0;background:#f1f6f3;border-radius:12px;padding:0 12px}
.search-wrap span{color:var(--green)}
.search-wrap input{font-family:"Inter","Segoe UI",sans-serif;font-size:14px;color:var(--ink)}
.search-wrap input::placeholder{color:#87958f}
.filter-row select,.inventory-filters select,.modal input,.modal select,.modal textarea{border:0;border-radius:12px;background:#f1f6f3;color:var(--ink)}
.list-header strong{font-family:"Inter","Segoe UI",sans-serif;font-size:15px;font-weight:800;color:var(--forest)}
.list-header span{font-size:10px;font-weight:700;letter-spacing:1.2px;color:#72837c}
.place-card{border:0!important;border-radius:16px;background:#f7faf8;box-shadow:none;gap:14px;grid-template-columns:57px minmax(0,1fr);margin:10px 0;padding:14px}
.place-card:hover{background:#eef5f0}
.place-art{background:var(--light-green);border-radius:12px}
.place-name{font:700 16px/1.25 "Inter","Segoe UI",sans-serif;color:var(--forest)}
.place-town{font-size:12px;color:#697770}
.status{background:var(--light-green)!important;color:var(--forest)!important;border:0!important;border-radius:999px;padding:4px 8px;font-size:10px;letter-spacing:.2px}
.status.pending{background:#e9f1ec!important;color:var(--green)!important}
.status.osm{background:#e4eee8!important;color:var(--forest)!important}
.inventory-tally{font-size:11px;color:#577065}
.text-button{color:var(--green);text-decoration:none;font-weight:700}
.side-bottom{background:var(--white);border-top:1px solid #edf2ef}
.demo-disclaimer{border:0;background:#f1f6f3;border-radius:12px;color:#4f625a}
.demo-disclaimer strong{font-size:10px}
.side-bottom p{color:#74827c}
.map-section{background:#e8efeb}
.map-section #map .leaflet-tile{filter:none}
.map-badge{background:var(--white);border:0;box-shadow:var(--shadow);border-radius:999px;color:var(--forest);letter-spacing:.8px;font-size:10px;padding:10px 14px}
.map-hint{border-radius:8px;color:#697770;background:rgba(255,255,255,.92)}
.map-notice{background:var(--forest);border-radius:14px}
.book-marker{background:var(--forest);border:2px solid var(--white);border-radius:18px 18px 18px 3px;box-shadow:0 6px 14px rgba(23,55,45,.22)}
.book-marker.osm{background:#4b6c5f}.book-marker.pending{background:#7ba08c}
.empty{background:#f1f6f3;border:0;border-radius:16px}
.empty h3,.modal h2,.book-form-wrap h3,.book-card-main>strong{font-family:"Inter","Segoe UI",sans-serif;color:var(--forest)}
.modal{border-radius:20px;box-shadow:0 20px 60px rgba(16,38,31,.25);background:var(--white)}
.modal::backdrop{background:rgba(16,38,31,.64)}
.modal p{color:#61706a}
.icon-button{background:#eef5f0;color:var(--forest)}
.coords{background:#f1f6f3;border-radius:12px;color:#4e6259}
.toast{background:var(--forest);border-radius:14px}
.inventory-notice{background:#f1f6f3;border:0;border-radius:14px;color:#52635d}
.inventory-notice strong{color:var(--forest)}
.inventory-summary{gap:10px;border:0}
.inventory-summary>div{background:#f7faf8;border:0;border-radius:14px;padding:16px 14px}
.inventory-summary strong{font-family:"Inter","Segoe UI",sans-serif;font-size:28px;font-weight:800;color:var(--forest)}
.inventory-summary span{text-transform:uppercase;letter-spacing:.7px;font-size:9px;color:#73837d}
.library-toolbar .button{padding:11px 14px}
.book-form-wrap{background:#f7faf8;border:0;border-radius:16px}
.inventory-filters .search-wrap{background:#f1f6f3;border-radius:12px}
.book-list{gap:10px;max-height:330px}
.book-card{border:0!important;border-radius:16px;padding:16px 14px;background:#f7faf8;grid-template-columns:39px 1fr}
.book-card.not-on-shelf{background:#eef3ef}
.book-icon{background:var(--light-green);border-radius:10px}
.book-byline{color:#66746e}
.isbn{color:#70817b}
.book-confidence.fresh{color:#2f6b57}.book-confidence.aging{color:#587869}.book-confidence.stale{color:#111111}
.mini-button{background:#eef5f0;color:var(--forest);font-size:10px}
.mini-button.success{background:#d9e9e0;color:var(--forest)}
.book-empty{background:#f1f6f3;border:0;border-radius:14px}
.inventory-legend{border:0;background:#f1f6f3;color:#55655f;border-radius:14px}
.activity-panel{border:0;background:#fafcfb;border-radius:14px;padding:0 12px}
.activity-panel summary{color:var(--green);padding:12px 2px}
.library-bottom{border-top:1px solid #edf2ef;padding-top:16px}
@media(max-width:850px){
  .topbar{height:72px;padding:0 16px}
  .layout{min-height:calc(100dvh - 72px);height:auto}
  .intro h1{font-size:34px}
  .map-badge{top:12px;right:12px}
}
@media(max-width:520px){
  .brand strong{font-size:22px}
  .intro h1{font-size:31px}
  .modal h2{font-size:28px}
}

/* BookSpots V8 responsive header and review controls */
#accountBtn,#adminBtn{white-space:nowrap;padding:10px 12px}.review-entry{background:#f3f8f5;padding:17px;margin:12px 0;border-radius:14px}.review-entry strong{color:var(--forest)}.review-entry p{margin:8px 0;font-size:12px}.review-buttons{display:flex;gap:10px;margin-top:14px}.auth-hint{font-size:11px!important}.topbar{gap:10px}.top-note{margin-left:auto}.topbar #accountBtn,.topbar #adminBtn{background:#dce9e2;color:#17372d;box-shadow:none;text-transform:none;letter-spacing:0}.topbar #accountBtn:hover,.topbar #adminBtn:hover{background:#c7dece}@media(max-width:750px){.topbar{flex-wrap:wrap;height:auto;min-height:72px;padding:10px 12px}.topbar .brand{flex:1}.topbar .brand small{display:none}.topbar #accountBtn,.topbar #adminBtn,.topbar #addBtn{font-size:10px;padding:9px}.layout{height:auto}.top-note{display:none}}


/* BookSpots V8.3 account menus — dark green, pale green, black; borderless controls */
#registerBtn{white-space:nowrap;padding:10px 12px!important;background:#dce9e2!important;color:#17372d!important;border:0!important;box-shadow:none!important;text-transform:none!important;letter-spacing:0!important}
#registerBtn:hover{background:#c7dece!important}
.account-modal .modal-inner{padding:28px;max-width:100%}
.account-modal .modal-heading{gap:16px}
.account-modal .modal-heading h2{font-size:30px}
.account-modal .modal-heading button{flex:none}
.account-modal label{font-size:11px}
.account-modal input{background:#f1f6f3;border:0;border-radius:12px;padding:13px 14px}
.account-modal .modal-actions{display:flex;flex-wrap:wrap;gap:9px}
.account-modal .modal-actions .button{min-height:43px}
.account-modal .auth-links{text-align:right;margin-top:13px}
.account-modal .auth-switch{border-top:1px solid #e3ede6;margin-top:20px;padding-top:18px;color:#576d61;font-size:13px}
.account-modal .text-button{font-size:13px;color:#176143;text-decoration:underline;text-underline-offset:3px}
.account-modal .text-button:focus-visible{outline:3px solid #7eac96}
.account-modal .form-feedback{background:#e4eee8;padding:12px 14px;border-radius:12px;font-size:12px;color:#17372d;margin:12px 0 0}
.account-modal .signed-in-email{padding:10px 14px;background:#f1f6f3;border-radius:12px;color:#17372d;overflow-wrap:anywhere}
@media(max-width:750px){.topbar #registerBtn{font-size:10px!important;padding:9px!important}}
@media(max-width:460px){.topbar{gap:6px}.topbar #accountBtn,.topbar #registerBtn,.topbar #adminBtn{font-size:10px!important;padding:8px!important}.topbar #addBtn{padding:9px!important}.account-modal .modal-inner{padding:20px}.account-modal .modal-heading h2{font-size:26px}}
