.book-photo{position:relative;flex:none;width:58px;height:76px;padding:0;border:1px solid #dce3ef;border-radius:7px;overflow:hidden;background:#f3f5f9;cursor:zoom-in}
.book-photo img{display:block;width:100%;height:100%;object-fit:cover}
.book-photo span{position:absolute;right:0;bottom:0;padding:2px 4px;border-radius:4px 0 0 0;background:#182644d9;color:#fff;font-size:.65rem;line-height:1.2}
.book-photo:focus-visible,.photo-dialog button:focus-visible{outline:3px solid #244dcc;outline-offset:2px}
.photo-dialog{width:min(92vw,760px);max-height:92vh;padding:0;border:0;border-radius:13px;background:#fff;color:#1e2b48;box-shadow:0 18px 60px #0b173d55}
.photo-dialog::backdrop{background:#0d1837c9}
.photo-dialog-inner{padding:16px}
.photo-dialog-head,.photo-dialog-nav{display:flex;align-items:center;justify-content:space-between;gap:12px}
.photo-dialog-head h2{margin:0;font-size:1rem;line-height:1.4}
.photo-dialog-close,.photo-dialog-nav button{min-height:40px;padding:8px 12px;border-radius:8px;background:#eef1f7;color:#244dcc;font-weight:650}
.photo-dialog-nav button:disabled{opacity:.45;cursor:default}
.photo-dialog-figure{display:flex;align-items:center;justify-content:center;height:min(68vh,650px);margin:12px 0;background:#f3f5f9;border-radius:8px;overflow:hidden}
.photo-dialog-figure img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.photo-dialog-error{color:#8c3940;text-align:center;padding:20px}
.photo-dialog-counter{font-size:.85rem;color:#657188}
@media(max-width:600px){.book-photo{width:48px;height:65px}.photo-dialog{width:96vw;max-height:94vh}.photo-dialog-figure{height:min(70vh,600px)}}
