:root{color:#2c241c;background:#e8e2d6;font-family:Noto Serif TC,Source Han Serif TC,Songti TC,PMingLiU,serif;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(900px 420px at 50% 0,#6b4f3a1a,#0000 60%),#e8e2d6;min-height:100vh;margin:0}#app{width:min(960px,100% - 24px);margin:0 auto;padding:28px 0 48px}.top h1{letter-spacing:.04em;margin:0 0 6px;font-size:1.45rem}.sub{color:#6b6156;margin:0;font-size:.92rem}.panel{background:#f7f3ea;border:1px solid #2c241c1f;border-radius:12px;gap:14px;margin-top:22px;padding:20px;display:grid}label{gap:6px;font-size:.92rem;display:grid}input[type=text],select{height:40px;font:inherit;background:#fff;border:1px solid #2c241c24;border-radius:8px;padding:0 10px}input[type=file]{font:inherit}.dropzone{text-align:center;cursor:pointer;background:#ffffff8c;border:1.5px dashed #6b4f3a73;border-radius:10px;outline:none;min-height:132px;padding:22px 16px;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone:focus-visible{background:#ffffffd9;border-color:#6b4f3a}.dropzone.is-dragover{background:#6b4f3a14;border-style:solid;border-color:#6b4f3a}.dropzone-title{color:#2c241c;margin:0 0 6px;font-size:1rem}.dropzone-sub{color:#6b6156;margin:0;font-size:.85rem}.dropzone.has-file .dropzone-title{color:#6b4f3a}button{color:#f4efe6;height:44px;font:inherit;cursor:pointer;background:#6b4f3a;border:0;border-radius:8px}button:disabled{opacity:.5;cursor:default}.hint{color:#6b6156;margin:0;font-size:.85rem}.hint.warn{color:#8a3b2b}.progress .bar{background:#2c241c1a;border-radius:99px;height:8px;overflow:hidden}.progress .bar i{background:#6b4f3a;width:0;height:100%;transition:width .15s;display:block}.progress p{color:#6b6156;margin:8px 0 0;font-size:.88rem}.viewer-wrap{margin-top:18px}.viewer-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.viewer-stage{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border-radius:10px;width:100%;height:min(72vh,820px);overflow:auto}.viewer-toolbar button{background:#5a4636;height:36px;padding:0 12px}.viewer-toolbar #btn-export{background:#6b4f3a;margin-left:auto}.viewer-toolbar #btn-publish{background:#3d5a45}.file-row{gap:10px;display:grid}.btn-secondary{color:#6b4f3a;background:0 0;border:1px solid #6b4f3a59;height:40px}.btn-secondary:hover{background:#6b4f3a14}.viewer-toolbar #btn-back-edit{background:#8a6a4e}.publish-status{color:#3d5a45;word-break:break-all;margin:0 0 10px;font-size:.9rem}.publish-status a{color:#2c5a3d}.publish-status.is-error{color:#8a3b2b}button.linkish{background:#5a4636;height:auto;margin-left:6px;padding:2px 8px;font-size:.85rem}.viewer-wrap .book-wrap{justify-content:center;align-items:center;width:100%;height:auto;min-height:100%;padding:8px;transition:transform .7s;display:flex;position:relative}.viewer-wrap .book-wrap.is-cover .stf__block{clip-path:inset(0 0 0 50%)}.viewer-wrap .book-wrap.is-back .stf__block{clip-path:inset(0 50% 0 0)}.viewer-wrap .book-wrap.is-instant{transition:none!important}.book{background:0 0}.flip-page{background:#fff;overflow:hidden}.flip-page img{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}
