@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#faf8f4;--ink:#402d23;--muted:#8c8075;--line:#e7e0d7;--caramel:#b77a51;--cream:#f0e4d3}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #b57a50;outline-offset:4px}input:focus,textarea:focus,select:focus{outline:2px solid #be9471;outline-offset:1px}.sidebar{width:238px;height:100vh;position:fixed;border-right:1px solid var(--line);padding:34px 22px 18px;background:#f4f0e9;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;padding:0 8px 46px}.brand img{width:43px;height:43px;object-fit:cover;border-radius:13px}.brand>span{font:800 29px 'Manrope',sans-serif;letter-spacing:-1.5px}.brand-dot{color:var(--caramel)}.side-label{font-size:9px;letter-spacing:1.7px;font-weight:700;color:#9d9185;padding:0 14px 18px}.nav-item{border:0;width:100%;background:none;text-align:left;padding:13px 12px;border-radius:8px;margin-bottom:7px;font-size:13px;display:flex;align-items:center;gap:12px;color:#827567}.nav-item>span{font-size:21px;line-height:20px;width:22px}.nav-item.active{background:#e9dfd0;color:var(--ink);font-weight:700}.nav-item b{font-size:10px;margin-left:auto;background:#daceba;padding:3px 6px;border-radius:5px}.side-note{margin-top:auto;padding:27px 12px 22px;color:#998675;font-size:11px;line-height:1.9}.small-star{font-size:25px;color:#b49570}.line-art{font-size:40px;letter-spacing:-9px;color:#d4bfa6}.plain{border:0;background:none}.side-help{text-align:left;font-size:10px;color:var(--muted);padding:14px 9px}.profile{display:flex;gap:9px;align-items:center;border-top:1px solid var(--line);padding-top:18px}.avatar{background:#e6d7c2;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700}.profile strong{display:block;font-size:11px;max-width:120px;overflow:hidden;text-overflow:ellipsis}.profile small{font-size:9px;color:var(--muted)}.profile button{margin-left:auto;font-size:19px}main{margin-left:238px}.topbar{height:75px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px;color:var(--muted);font-size:11px}.button{border:0;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px;font-size:12px;font-weight:600;min-height:41px;text-decoration:none}.dark{background:#493326;color:#fff9ef}.dark:hover{background:#674a36}.subtle{background:#f0ebe3;padding:9px 15px}.outline{background:transparent;border:1px solid #d9ccbd}.content{max-width:1320px;margin:auto;padding:32px 44px 0}.hero{min-height:298px;background:#f0e6d7;border:1px solid #e9ddca;border-radius:13px;position:relative;overflow:hidden;display:flex;padding:32px 38px}.eyebrow{font-size:9px;letter-spacing:2.1px;color:#9a7c5f;font-weight:700}h1{font-family:'Manrope',sans-serif;font-size:42px;letter-spacing:-2px;line-height:1.16;font-weight:600;margin:15px 0 13px}h1 em{font-style:normal;color:#a37857}.hero p{font-size:11px;line-height:1.8;color:#897664;margin-bottom:19px}.hero .button{padding:11px 17px}.hero-art{width:360px;height:100%;position:absolute;right:20px;bottom:0;pointer-events:none}.sun{position:absolute;bottom:-100px;right:-70px;width:390px;height:390px;border-radius:50%;background:#e7d3b6}.shelf{position:absolute;height:9px;bottom:52px;left:10px;right:0;background:#a47c58;border-radius:4px;box-shadow:0 10px 17px #94765325}.book{position:absolute;bottom:61px;border-radius:3px 6px 4px 2px;box-shadow:4px 1px 0 #e9dcc5,8px 2px 12px #65472d16;display:flex;align-items:center;justify-content:center}.book span{writing-mode:vertical-rl;letter-spacing:2px;font-family:Georgia,serif;font-size:13px}.b1{height:156px;width:53px;background:#926850;left:43px;transform:rotate(-13deg);color:#f4e6cc}.b2{height:180px;width:60px;background:#d1b88e;left:113px;color:#65503b}.b3{height:143px;width:50px;background:#f4eddf;left:180px;transform:rotate(8deg);color:#9b8264}.vase{position:absolute;bottom:61px;right:15px;width:66px;height:88px;background:#ba896a;border-radius:25% 25% 40% 40%}.plant{position:absolute;bottom:141px;right:18px;transform:rotate(-50deg);font-size:80px;color:#857b55}.spark{position:absolute;top:28px;left:37px;font-size:30px;color:#b89468}.art-caption{position:absolute;right:32px;top:33px;font-size:9px;letter-spacing:2px;line-height:1.8;color:#9b7b55;transform:rotate(5deg)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin:24px 0}.stats>div{padding:19px 16px;background:#fffdfa;border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;gap:14px}.stat-icon{font-size:22px;color:#9a7a54;background:#f4eee4;width:38px;height:38px;display:grid;place-items:center;border-radius:8px}.stats b{font-size:24px;font-family:'Manrope',sans-serif;font-weight:600;display:block;line-height:1.2}.stats div div>span{font-size:10px;color:#9b8c7d;display:block;margin-top:4px}.notice{font-size:11px;line-height:1.6;color:#8a755f;padding:10px 14px;border-left:2px solid #cfb491;background:#f5efe5;margin-bottom:26px}.notice.error{color:#9b4035}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading h2{font:600 23px 'Manrope',sans-serif;letter-spacing:-.7px;margin:0}.section-heading h2 span{font:500 10px 'DM Sans',sans-serif;background:#ebe4d9;padding:4px 7px;border-radius:5px;vertical-align:middle;margin-left:6px}.section-heading p{font-size:11px;color:var(--muted);margin:8px 0 19px}.toolbar{display:flex;gap:12px;align-items:center}.search{display:flex;align-items:center;gap:9px;flex:1;position:relative}.search>span{position:absolute;left:13px;font-size:25px;color:#a89b8b}.search input{padding-left:39px;width:100%;margin:0}.toolbar select{width:175px;margin:0;font-size:11px}.view-switch{display:flex;border:1px solid var(--line);border-radius:6px;padding:3px;background:#fffdfa}.view-switch button{background:none;border:0;font-size:18px;padding:5px 8px;color:#9e8e7c}.view-switch .selected{background:#eae1d3;color:#5f4833;border-radius:4px}.tabs{display:flex;gap:21px;border-bottom:1px solid var(--line);margin:16px 0 25px}.tabs button{border:0;background:none;color:#9c8f81;font-size:11px;padding:12px 0}.tabs button.selected{color:#6d4b32;border-bottom:2px solid #9b704e;font-weight:700}.book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:23px 20px}.book-card{border:0;background:none;text-align:left;padding:0;min-width:0}.cover{height:223px;background:#eee6d9;border-radius:8px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;margin-bottom:13px}.cover img{max-width:75%;height:82%;object-fit:contain;filter:drop-shadow(4px 7px 5px #33271e26)}.cover-fallback{width:68%;height:83%;padding:22px 13px;background:var(--book-color,#8c7860);color:#f6ead5;box-shadow:4px 5px 0 #ddccb0,6px 10px 10px #33271e20;border-left:5px solid #ffffff16;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;font-family:Georgia,serif}.cover-fallback b{font-size:20px;line-height:1.2;font-weight:400}.cover-fallback small{font-size:10px}.cover-fallback span{font-size:28px}.card-status{position:absolute;bottom:10px;left:10px;background:#fffaf0ed;padding:5px 8px;font-size:9px;border-radius:4px;color:#7d6348}.book-card h3{font-size:13px;line-height:1.4;margin:0 0 5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-card p{font-size:11px;margin:0;color:#9a8d7d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rating{margin-top:8px;color:#b08653;font-size:11px;letter-spacing:2px;min-height:16px}.book-card:hover .cover{background:#e8ddcd}.book-grid.list{display:flex;flex-direction:column;gap:12px}.book-grid.list .book-card{display:grid;grid-template-columns:65px 1fr 1fr 100px;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding-bottom:12px}.book-grid.list .cover{height:82px;margin:0}.book-grid.list .card-status{display:none}.book-grid.list .cover-fallback{padding:4px}.book-grid.list .cover-fallback b{font-size:9px}.book-grid.list .cover-fallback small,.book-grid.list .cover-fallback span{display:none}.empty{padding:35px 15px 48px;text-align:center;border:1px dashed #d9cebc;border-radius:10px;background:#f7f2e9}.empty>span{font-size:40px;color:#b3946e}.empty h3{font:500 21px 'Manrope',sans-serif;margin-bottom:10px}.empty p{font-size:12px;color:var(--muted);margin-bottom:22px}footer{padding:29px 0 23px;border-top:1px solid var(--line);margin-top:35px;display:flex;justify-content:space-between;color:#a59684;font-size:10px}.footer-sep{padding:0 8px}footer button{font-size:10px;color:var(--muted)}dialog{border:1px solid #e0d4c4;border-radius:16px;background:var(--paper);color:var(--ink);padding:27px;width:min(660px,94vw);max-height:90vh;box-shadow:0 25px 100px #30201630}dialog::backdrop{background:#30241b66;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.dialog-head h2{font:600 26px 'Manrope',sans-serif;letter-spacing:-1px;margin:7px 0 0}.close{background:#eee6da;border:0;border-radius:50%;width:30px;height:30px;font-size:22px}.isbn-lookup{background:#eee4d5;border-radius:9px;padding:17px;margin-bottom:20px}.isbn-lookup>div{display:flex;gap:8px;margin:8px 0}.isbn-lookup input{margin:0;min-width:0;flex:1}.isbn-lookup small{font-size:10px;color:#8e755c}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.wide{grid-column:1/-1}label{display:block;font-size:11px;font-weight:500}input,select,textarea{display:block;border:1px solid #dfd6c9;background:#fffdfa;border-radius:6px;padding:11px 12px;color:var(--ink);width:100%;margin-top:6px}textarea{resize:vertical}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:16px;margin:0;accent-color:#745338}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;flex-wrap:wrap}.danger{color:#9c4f3d;background:#f4e5df;margin-right:auto}.error{color:#a14737;font-size:12px}.muted{color:var(--muted);font-size:12px;line-height:1.8}#auth-dialog{max-width:400px}#auth-form>label{margin-bottom:15px}.full{width:100%;margin-top:10px}#auth-form .plain{font-size:11px;padding:8px;color:#927252}#auth-message{font-size:12px;line-height:1.6}#info-dialog{font-size:13px;line-height:1.8}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#493326;color:#fff5e7;z-index:20;padding:13px 21px;border-radius:8px;box-shadow:0 6px 30px #30201630;display:none;font-size:12px;max-width:90vw}[hidden]{display:none!important}@media(min-width:1450px){.hero-art{right:70px;width:400px}.cover{height:260px}}@media(max-width:1100px){.sidebar{width:200px;padding-left:13px;padding-right:13px}main{margin-left:200px}.content{padding:25px}.topbar{padding:0 25px}.hero{padding:28px}.hero-art{right:-75px;opacity:.75}.hero>div:first-child{z-index:1}.hero p{max-width:290px}.book-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stats{gap:9px}.stats>div{padding:14px 9px;gap:9px}.stat-icon{width:29px;height:32px}.stats div div>span{font-size:9px}}@media(max-width:760px){.sidebar{position:static;width:100%;height:auto;display:block;padding:14px 18px;border-bottom:1px solid var(--line);border-right:0}.brand{padding:0;font-size:22px}.brand img{width:34px;height:34px}.brand>span{font-size:25px}.side-label,.side-note,.side-help,.profile{display:none}.sidebar nav{display:none}main{margin-left:0}.topbar{height:55px;padding:0 20px;font-size:10px}.content{padding:18px}.hero{padding:25px;min-height:285px}.hero-art{right:-150px;opacity:.45}.hero h1{font-size:36px}.hero p{max-width:235px;font-size:10px}.hero p br{display:none}.stats{grid-template-columns:repeat(2,1fr);gap:10px;margin:16px 0}.stats>div{padding:14px}.stats div div>span{font-size:10px}.section-heading h2{font-size:21px}.section-heading .button{padding:10px}.toolbar{flex-wrap:wrap;gap:9px}.search{flex-basis:100%}.toolbar select{flex:1}.tabs{gap:18px;overflow-x:auto;white-space:nowrap}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px}.cover{height:215px}.cover-fallback b{font-size:18px}.book-grid.list .book-card{grid-template-columns:55px 1fr;gap:8px}.book-grid.list .cover{grid-row:span 3}.book-grid.list .rating{margin-top:0}.form-grid{gap:11px}.form-grid label{grid-column:1/-1}.dialog-actions .button{padding:10px 12px}dialog{padding:20px}.isbn-lookup{padding:12px}footer{font-size:9px;gap:10px}.notice{margin-bottom:22px}}
