:root{font-family:Inter,Arial,sans-serif;--bg:#181310;--panel:#251d18;--panel2:#36271f;--text:#fff2e4;--muted:#c4ab95;--accent:#d69a60;--border:#564033;--input:#211a16;color-scheme:dark}body.light{--bg:#fbf2e9;--panel:#fff9f2;--panel2:#f2dfce;--text:#342016;--muted:#80634d;--accent:#9a4e26;--border:#dec4ae;--input:#fffaf5;color-scheme:light}body{background:radial-gradient(ellipse at top left,#9e5e2422,transparent 55%),var(--bg)}h1,h2,h3,button{font-family:Manrope,Inter,Arial,sans-serif}h1{font-size:23px}h2{font-size:20px}header{padding:14px 22px;background:var(--panel);box-shadow:0 3px 20px #0002}header .eyebrow{font-size:9px;letter-spacing:.2em}main{max-width:1250px;padding:22px 22px 110px}button{touch-action:manipulation}.btn,.iconbtn{border-radius:10px;min-height:42px}.primary{background:linear-gradient(#bd7542,#843e1d);color:#fff4e5;border:1px solid #d7966055;box-shadow:inset 0 1px #ffffff33}button:focus-visible,[role=button]:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.nav{background:var(--panel);box-shadow:0 -8px 24px #0002;backdrop-filter:blur(15px)}.nav button{min-width:0;flex:1;font-size:10px}.nav b{font-size:20px}.nav svg{width:23px;height:23px;display:block;margin:0 auto 4px}.nav .active{background:var(--panel2);border-radius:12px}.card,.box,.stat{border-radius:14px;box-shadow:0 4px 16px #24100909}.hero{position:relative;padding:30px 24px 22px;background:linear-gradient(115deg,#482719,#8a4a22 70%,#c78b48);color:#fff5e6;border:1px solid #d7a16b55;border-radius:17px;margin-bottom:18px;overflow:hidden}.hero:after{content:'❧';position:absolute;right:18px;top:4px;font:100px Georgia;color:#efd2a32b}.hero h2{font:32px Georgia,serif;margin:6px 0 10px}.hero p{position:relative;z-index:1;max-width:70%;line-height:1.6}.hero small{color:#efd3b6}.stats{gap:10px;margin:15px 0 20px}.stat{padding:14px}.stat strong{font:30px Georgia,serif}.stat span{font-size:11px}.section{margin-bottom:22px}.section>.row{margin-bottom:12px}.books{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.book{background:none;border:0;box-shadow:none;border-radius:0}.cover{height:auto;aspect-ratio:2/3;padding:0;background:linear-gradient(100deg,#43281a,#8e603a 8%,#513321 13%,#251e18);border-radius:3px 8px 8px 3px;box-shadow:3px 5px 8px #0004;font:16px Georgia;overflow:hidden}.cover img{object-fit:cover}.cover .fallback{padding:16px;border:1px solid #d6b47066;margin:10px;color:#edd5aa;max-width:90%;overflow-wrap:anywhere}.bookinfo{padding:10px 0}.bookinfo strong{font-size:12px}.bookinfo small{font-size:10px}.bookinfo .pill{font-size:9px}.progressrow{display:grid;grid-template-columns:66px 1fr;gap:16px;align-items:center}.progressrow .cover{width:66px}.progressrow h3{margin-bottom:4px}.bar{height:7px;margin:9px 0;background:var(--panel2)}.bar span{background:linear-gradient(90deg,#96502c,#dfaa68)}.searchline{display:flex;gap:8px;margin-bottom:10px}.searchline input{flex:1;min-width:0}.sortline{display:flex;gap:8px;align-items:center;margin-bottom:20px}.sortline select{flex:1;min-width:0;font-size:12px}.sortline button{padding:8px}.list-view{display:flex;flex-direction:column}.list-view .book{display:flex;gap:15px;border-bottom:1px solid var(--border);padding:8px 0}.list-view .cover{width:65px;min-width:65px;height:98px}.list-view .bookinfo{padding:4px}.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.tile{display:flex;flex-direction:column;text-align:left;gap:12px;padding:20px;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:14px;min-height:116px}.tile span{font:25px Georgia;color:var(--accent)}.tile small{font-size:11px}.detailhead{display:grid;grid-template-columns:112px 1fr;gap:20px;margin:20px 0}.detailhead .cover{width:112px}.detailhead h2{font:26px Georgia;margin-top:10px}.detailinfo{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detailinfo p{margin:0;padding:12px;background:var(--panel);border-radius:9px;font-size:13px}.detailinfo small{display:block;font-size:10px;margin-bottom:5px}.modal{max-height:none;background:var(--bg);box-shadow:0 15px 90px #0006}.modalwrap{padding:10px}.modal .row h2{margin:0}.fields{gap:16px}.field{font-size:12px}.field input{min-height:43px}.chartgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}.donutrow{display:flex;align-items:center;gap:25px}.donut{width:120px;height:120px;flex-shrink:0;border-radius:50%;position:relative}.donut:after{content:attr(data-total);position:absolute;inset:23px;border-radius:50%;display:grid;place-items:center;background:var(--panel);font:28px Georgia}.legend{flex:1}.legend button{display:flex;justify-content:space-between;gap:10px;background:none;border:0;color:var(--text);width:100%;padding:7px 0;text-align:left;font-size:12px}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.chartbar{display:grid;grid-template-columns:80px 1fr 28px;align-items:center;gap:10px;margin:10px 0;font-size:12px}.chartbar button{padding:0;border:0;background:var(--panel2);height:12px;border-radius:8px;overflow:hidden}.chartbar button span{display:block;background:var(--accent);height:100%}.empty{line-height:1.7;border:1px dashed var(--border);border-radius:12px}.statusline{font-size:10px;color:var(--muted);padding-top:5px}.shelf-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.cabinet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.cabinet{position:relative;aspect-ratio:2/3;background:url('assets/cabinet.png') center/100% 100%;box-shadow:0 12px 32px #0007;border-radius:4px;overflow:hidden;isolation:isolate}.cabinet.oak{filter:brightness(1.27) saturate(.7)}.cabinet.mahogany{filter:sepia(.25) saturate(1.35)}.cabinet.unlit:after{content:'';pointer-events:none;position:absolute;inset:0;background:#08040050;z-index:4}.shelfrow{position:absolute;left:5%;right:5%;height:21%;display:flex;align-items:flex-end;gap:3px;padding:0 2% 0;bottom:calc(75% + 2%);z-index:2}.shelfrow:nth-of-type(2){bottom:52%}.shelfrow:nth-of-type(3){bottom:27%}.shelfrow:nth-of-type(4){bottom:2%}.spine{position:relative;flex:0 0 var(--sw,27px);width:var(--sw,27px);height:var(--sh,90%);padding:8px 4px;background:linear-gradient(90deg,#0009,transparent 16%,#ffffff22 25%,transparent 38%,#0007),var(--spine);border:1px solid #e0bc6d55;border-radius:2px 3px 2px 2px;color:#f1d79d;box-shadow:3px 0 4px #0008,inset 0 7px #0004,inset 0 -7px #0004;writing-mode:vertical-rl;text-orientation:mixed;text-align:center;font:12px Georgia;overflow:hidden;transition:transform .24s,box-shadow .24s;transform-origin:bottom center;cursor:pointer;min-height:50px;min-width:0}.spine:before,.spine:after{content:'';position:absolute;left:2px;right:2px;height:3px;border-block:1px solid #ccab6b88;top:8px}.spine:after{top:auto;bottom:8px}.spine:hover,.spine.selected{transform:translateY(-10px) scale(1.06);box-shadow:7px 7px 9px #0008;z-index:5}.spine small{font:8px Georgia;color:#dbbd88;padding-top:8px}.spine span{max-height:85%;overflow:hidden}.decoration{position:absolute;right:2%;bottom:0;height:80%;width:23%;object-fit:contain;object-position:bottom;pointer-events:none;filter:drop-shadow(2px 5px 3px #0009)}.shelfrow.decorated{padding-right:24%}.cabinet-caption{font-size:11px;margin:8px 0 18px}.books .empty{grid-column:1/-1}.formnote{padding:12px;border-left:3px solid var(--accent);background:var(--panel2);font-size:12px;line-height:1.6}.badge{padding:4px 8px;background:var(--panel2);color:var(--accent);font-size:11px;border-radius:20px}.toolbar-mini{display:flex;gap:8px;margin:12px 0}.listitem button{max-width:100%}.subback{margin-bottom:15px}.filtercount{font-size:11px;color:var(--muted)}
@media(min-width:800px){body{padding-left:200px}header{padding:20px 32px}main{padding:28px 32px 70px}.nav{position:fixed;left:0;top:0;bottom:0;right:auto;width:200px;display:flex;flex-direction:column;justify-content:flex-start;padding:120px 12px 20px;gap:10px;border-right:1px solid var(--border);background:linear-gradient(130deg,#4a2c1d,var(--panel))}.nav button{flex:0;text-align:left;padding:15px;font-size:13px;color:#ead1b9}.nav svg{display:inline-block;vertical-align:middle;margin:0 10px 0 0}.nav:before{content:'LITERARY\A EDITION';white-space:pre;position:absolute;top:36px;left:25px;font:20px Georgia;line-height:1.4;color:#e9c99d;letter-spacing:.15em}.books{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.homecolumns{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}.stats{grid-template-columns:repeat(4,1fr)}.tiles{grid-template-columns:repeat(3,1fr)}.cabinet-grid{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}.hero h2{font-size:42px}.modal{margin-top:30px}.modalwrap{align-items:flex-start}}
@media(max-width:420px){main{padding:16px 14px 100px}header{padding:12px 14px}.books{gap:10px}.bookinfo strong{font-size:11px}.cabinet-grid{display:block}.hero{padding:23px 18px}.hero h2{font-size:28px}.fields{grid-template-columns:1fr}.detailhead{grid-template-columns:95px 1fr}.detailhead .cover{width:95px}.detailhead h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.decoration{background-image:url('assets/decorations.png');background-size:400% 100%;background-repeat:no-repeat}.deco-plant{background-position:0 100%}.deco-globe{background-position:33.333% 100%}.deco-lantern{background-position:66.666% 100%}.deco-frame{background-position:100% 100%}
.cabinet-grid{grid-template-columns:repeat(auto-fit,minmax(300px,460px));justify-content:center}.shelfrow{bottom:74.9%}.shelfrow:nth-of-type(2){bottom:50.2%}.shelfrow:nth-of-type(3){bottom:26.4%}.shelfrow:nth-of-type(4){bottom:2.1%}.spine{background-image:linear-gradient(90deg,#0009,transparent 16%,#ffffff22 25%,transparent 38%,#0007),url('assets/leather.svg');background-color:var(--spine);border-top:2px solid #b79b6288;border-bottom:2px solid #b79b6288}.spine span{padding:9px 0;letter-spacing:.02em}.spine small{display:block;max-height:70%;overflow:hidden}
.cabinet.oak{filter:none;background-image:url('assets/cabinet-oak.png')}.cabinet.mahogany{filter:none;background-image:url('assets/cabinet-mahogany.png')}
.cabinet.unlit{background-image:url('assets/cabinet-unlit.png')}.cabinet.oak.unlit{background-image:url('assets/cabinet-oak-unlit.png')}.cabinet.mahogany.unlit{background-image:url('assets/cabinet-mahogany-unlit.png')}.cabinet.unlit:after{background:#08040016}.hero{background:linear-gradient(90deg,#1d120ce0,#49261445),url('assets/mountains.png') center 55%/cover}.hero:after{display:none}.hero h2{text-shadow:0 2px 7px #0005}header .top>div:last-child{display:flex;align-items:center;gap:7px}
@media(max-width:799px){header h1{font-size:19px;line-height:1.25;margin:4px 0;max-width:235px}header .eyebrow{font-size:8px}#add{font-size:0;min-width:43px;width:43px;padding:0}#add:after{content:'＋';font-size:24px}#theme{padding:8px;min-width:34px}.shelf-controls{flex-wrap:nowrap;gap:6px;margin-bottom:7px}.shelf-controls .btn{padding:8px;font-size:12px;white-space:nowrap}.shelf-help{font-size:10px;margin:5px 0 10px;line-height:1.5}.hero h2{font-size:27px}.hero p{font-size:12px}}
.cover .fallback{padding:8px;margin:8px;font-size:14px;line-height:1.4;max-width:88%;overflow-wrap:break-word}.progressrow .cover .fallback{padding:4px;margin:5px;font-size:10px;max-width:88%}.shelfrow.decor-left{padding-left:24%;padding-right:2%}.shelfrow.decor-left .decoration{left:2%;right:auto}
@media(max-width:799px){.hero+.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.hero+.stats .stat{padding:12px 8px}.hero+.stats .stat strong{font-size:27px}.hero+.stats .stat span{font-size:10px}}
