:root{--ink:#18212b;--muted:#687481;--paper:#fff;--bg:#f1f3f5;--navy:#122233;--accent:#16a3a5;--accent-dark:#0f7f81;--line:#dce2e7;--danger:#b33b42;--shadow:0 18px 45px rgba(14,25,35,.12)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit}.eyebrow{margin:0 0 7px;color:var(--accent-dark);font-size:11px;font-weight:800;letter-spacing:.2em}.muted,small{color:var(--muted)}h1,h2,p{overflow-wrap:anywhere}.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 16px;border:1px solid transparent;border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-weight:700;text-decoration:none;cursor:pointer}.button.primary{background:var(--accent);color:#fff}.button.primary:hover{background:var(--accent-dark)}.button.ghost{border-color:var(--line)}.button.danger{border-color:#ebc8ca;color:var(--danger)}.button.large{min-height:50px}.required{color:var(--danger);font-size:12px}.notice{margin:16px 0;padding:13px 16px;border-radius:9px;background:#e7f6f2;color:#17664f}.notice.error{background:#fbe9ea;color:#8e2830}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:30px 18px;background:linear-gradient(135deg,#e9f4f4,#f6f3ed)}.auth-card{width:min(460px,100%);padding:36px;background:#fff;border-radius:18px;box-shadow:var(--shadow)}.auth-card h1{margin-top:0}.form-stack{display:grid;gap:19px}.form-stack label{display:grid;gap:7px;font-size:14px;font-weight:700}.form-stack input,.form-stack textarea{width:100%;padding:12px 13px;border:1px solid #cbd4db;border-radius:9px;background:#fff;color:var(--ink);font:inherit}.form-stack input:focus,.form-stack textarea:focus{outline:3px solid rgba(22,163,165,.16);border-color:var(--accent)}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px clamp(18px,4vw,54px);background:var(--navy);color:#fff}.brand{font-weight:800;text-decoration:none}.topbar nav{display:flex;align-items:center;gap:20px}.topbar nav a{font-size:13px;text-decoration:none;color:#dce7ef}.admin-shell{width:min(1180px,calc(100% - 32px));margin:38px auto 70px}.admin-shell.narrow{width:min(820px,calc(100% - 32px))}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading h1{margin:0;font-size:clamp(26px,4vw,38px)}.admin-list{display:grid;gap:13px}.admin-book{display:grid;grid-template-columns:74px minmax(200px,1fr) auto;align-items:center;gap:19px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:14px}.mini-cover{display:grid;place-items:center;aspect-ratio:3/4;border-radius:5px;background:linear-gradient(145deg,var(--navy),#29465e);color:#fff;font-size:12px;font-weight:900;letter-spacing:.13em}.admin-book h2{margin:7px 0 4px;font-size:19px}.status-row{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:12px}.status{padding:3px 8px;border-radius:99px;font-weight:800}.status.public{background:#dbf4ed;color:#116a53}.status.private{background:#eceff2;color:#55616b}.slug{margin:0;color:var(--muted);font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.admin-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.admin-actions form{margin:0}.editor-card{padding:26px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 25px rgba(20,30,40,.05)}.field-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:18px}.upload-box{padding:18px;border:2px dashed #cbd5dc;border-radius:12px;background:#f9fbfb}.check-row{display:flex;gap:25px;flex-wrap:wrap}.check-row label{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px}.check-row input{width:auto}.current-file{margin:-10px 0 0;color:var(--muted);font-size:13px}.editor-card hr{width:100%;border:0;border-top:1px solid var(--line)}.editor-card h2{margin:0}.empty-state{max-width:700px;margin:100px auto;padding:45px 25px;text-align:center}.admin-empty{margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:16px}.public-header{padding:55px max(24px,6vw) 34px;background:linear-gradient(120deg,#102334,#1e4b5b);color:#fff}.public-header h1{margin:0;font-size:clamp(30px,6vw,54px)}.library-shell{width:min(1180px,calc(100% - 36px));margin:40px auto 70px}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:26px}.book-card{overflow:hidden;background:#fff;border-radius:16px;box-shadow:0 10px 28px rgba(25,35,45,.09)}.book-cover{display:flex;min-height:330px;padding:34px;flex-direction:column;justify-content:space-between;text-decoration:none;background:linear-gradient(145deg,#102536,#1c6370);color:#fff}.cover-mark{align-self:start;padding:6px 9px;border:1px solid rgba(255,255,255,.5);border-radius:5px;font-size:11px;font-weight:900;letter-spacing:.12em}.book-cover strong{font-size:26px;line-height:1.35}.book-info{padding:22px}.book-info h2{margin:5px 0 12px;font-size:20px}.book-info p{color:var(--muted);font-size:14px;line-height:1.7}.book-date{margin:0;font-size:12px!important}.site-footer{padding:25px;text-align:center;color:var(--muted);font-size:12px}.viewer-page{overflow:hidden;background:#151b20;color:#fff}.viewer-app{height:100dvh;display:grid;grid-template-rows:58px minmax(0,1fr) 45px}.viewer-bar{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#11191f;border-bottom:1px solid #2a353d}.viewer-bar h1{min-width:0;flex:1;margin:0;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-actions{display:flex;gap:5px}.icon-button{display:grid;place-items:center;min-width:38px;height:38px;padding:0 8px;border:1px solid #34424d;border-radius:7px;background:#202b33;color:#fff;font:700 18px/1 inherit;text-decoration:none;cursor:pointer}.text-button{font-size:12px}.viewer-main{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);min-height:0}.thumb-panel{width:0;overflow:hidden;background:#11191f;border-right:1px solid #2c3942;transition:width .2s}.thumb-panel.open{width:170px}.thumb-list{width:170px;height:100%;padding:13px 10px;overflow:auto}.thumb-button{display:grid;justify-items:center;width:100%;margin:0 0 11px;padding:8px;border:1px solid transparent;border-radius:8px;background:transparent;color:#bec8cf;cursor:pointer}.thumb-button:hover,.thumb-button.active{border-color:var(--accent);background:#1d2b33}.thumb-button canvas{max-width:115px;max-height:145px;background:#fff;box-shadow:0 4px 12px #0007}.thumb-button span{margin-top:5px;font-size:11px}.stage{position:relative;min-width:0;min-height:0;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#46515a,#222a30 70%);touch-action:pan-x pan-y}.book-viewport{max-width:100%;max-height:100%;overflow:auto;padding:20px 50px;overscroll-behavior:contain}.page-spread{display:flex;align-items:center;justify-content:center;min-width:max-content;min-height:100%;gap:4px;perspective:1600px}.pdf-page{display:block;background:#fff;box-shadow:0 18px 42px #0008;transition:transform .18s}.page-spread .pdf-page:first-child:not(:only-child){box-shadow:-10px 18px 42px #0008}.page-spread .pdf-page:last-child:not(:only-child){box-shadow:10px 18px 42px #0008}.page-arrow{position:absolute;z-index:4;top:50%;width:44px;height:70px;transform:translateY(-50%);border:1px solid #ffffff35;border-radius:10px;background:#0d151bb5;color:#fff;font:300 38px/1 sans-serif;cursor:pointer}.page-arrow.prev{left:9px}.page-arrow.next{right:9px}.page-arrow:disabled{opacity:.25;cursor:default}.loading{position:absolute;z-index:8;inset:0;display:grid;place-content:center;justify-items:center;background:#252e34d9}.loading[hidden]{display:none}.loading span{width:34px;height:34px;border:3px solid #ffffff35;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.loading p{font-size:13px}.viewer-error{padding:25px;text-align:center;color:#fff}.viewer-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:6px 16px;background:#11191f;border-top:1px solid #2a353d;color:#aebbc4;font-size:12px}.viewer-footer>:last-child{text-align:right}.page-control{display:flex;align-items:center;gap:7px}.page-control input{width:60px;padding:5px 7px;border:1px solid #3e4c57;border-radius:5px;background:#202a31;color:#fff;text-align:center}.embedded .viewer-bar>a:first-child{display:none}@keyframes spin{to{transform:rotate(360deg)}}
.book-cover{position:relative;display:grid;height:330px;min-height:0;padding:0;place-items:center;overflow:hidden}.cover-canvas{display:block;width:100%;height:100%;object-fit:contain;background:#e8ecef;opacity:0;transition:opacity .25s}.cover-ready .cover-canvas{opacity:1}.cover-loading{position:absolute;padding:6px 9px;border:1px solid rgba(255,255,255,.5);border-radius:5px;font-size:11px;font-weight:900;letter-spacing:.12em}.cover-ready .cover-loading{display:none}.page-spread.turn-next{animation:turnNext .24s ease-out}.page-spread.turn-prev{animation:turnPrev .24s ease-out}@keyframes turnNext{from{opacity:.55;transform:perspective(1200px) rotateY(-7deg) translateX(18px)}to{opacity:1;transform:none}}@keyframes turnPrev{from{opacity:.55;transform:perspective(1200px) rotateY(7deg) translateX(-18px)}to{opacity:1;transform:none}}
@media(max-width:767px){.topbar{align-items:flex-start}.topbar nav{gap:11px;flex-wrap:wrap;justify-content:flex-end}.admin-book{grid-template-columns:55px 1fr}.admin-actions{grid-column:1/-1;justify-content:flex-start}.field-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start;flex-direction:column}.auth-card{padding:26px 20px}.viewer-app{grid-template-rows:52px minmax(0,1fr) 42px}.viewer-bar{padding:6px}.viewer-bar h1{font-size:13px}.icon-button{min-width:34px;height:34px}.viewer-actions #zoomOut,.viewer-actions #zoomIn{display:none}.viewer-main{display:block}.thumb-panel{position:absolute;z-index:15;top:0;bottom:0;left:0}.thumb-panel.open{width:145px}.thumb-list{width:145px}.book-viewport{padding:13px 42px}.page-arrow{width:34px;height:58px}.page-arrow.prev{left:4px}.page-arrow.next{right:4px}.viewer-footer{padding:5px 9px}.book-cover{height:280px;min-height:0}.public-header{padding-top:38px}}
@media(max-width:430px){.viewer-bar h1{max-width:90px}.admin-shell{width:min(100% - 20px,1180px)}.editor-card{padding:20px 15px}.check-row{display:grid;gap:12px}}
.form-stack select{width:100%;padding:12px 13px;border:1px solid #cbd4db;border-radius:9px;background:#fff;color:var(--ink);font:inherit}.heading-actions,.form-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.setting-note{margin:0;padding:12px 14px;border-radius:9px;background:#f2f7f7;color:#52636d;font-size:13px}.control-hidden{display:none!important}.page-frame{position:relative;flex:0 0 auto;background:#fff;box-shadow:0 18px 42px #0008}.page-frame .pdf-page{box-shadow:none}.page-link-layer{position:absolute;z-index:3;inset:0;pointer-events:none}.page-hotspot{position:absolute;display:grid;place-items:center;overflow:hidden;border:2px solid var(--link-color,#16a3a5);background:color-mix(in srgb,var(--link-color,#16a3a5) 15%,transparent);color:#fff;text-decoration:none;pointer-events:auto;transition:opacity .16s,background .16s;cursor:pointer}.page-hotspot:hover,.page-hotspot:focus{opacity:1!important;background:color-mix(in srgb,var(--link-color,#16a3a5) 28%,transparent);outline:2px solid #fff;outline-offset:1px}.page-hotspot.style-button span{max-width:94%;padding:6px 10px;border-radius:6px;background:var(--link-color,#16a3a5);font-size:12px;font-weight:800;text-align:center;box-shadow:0 3px 8px #0004}.links-hover .page-hotspot.style-hotspot,.links-hover .page-hotspot.pdf-annotation{opacity:0}.links-invisible .page-hotspot{opacity:0;border:0}.links-always .page-hotspot{opacity:1}.page-spread.effect-flip.turn-next{transform-origin:right center;animation:bookFlipNext var(--turn-speed,420ms) cubic-bezier(.2,.7,.2,1)}.page-spread.effect-flip.turn-prev{transform-origin:left center;animation:bookFlipPrev var(--turn-speed,420ms) cubic-bezier(.2,.7,.2,1)}.page-spread.effect-slide.turn-next{animation:bookSlideNext var(--turn-speed,420ms) ease-out}.page-spread.effect-slide.turn-prev{animation:bookSlidePrev var(--turn-speed,420ms) ease-out}.page-spread.effect-fade{animation:bookFade var(--turn-speed,420ms) ease-out}@keyframes bookFlipNext{from{opacity:.45;transform:perspective(1400px) rotateY(-18deg) translateX(7%)}to{opacity:1;transform:none}}@keyframes bookFlipPrev{from{opacity:.45;transform:perspective(1400px) rotateY(18deg) translateX(-7%)}to{opacity:1;transform:none}}@keyframes bookSlideNext{from{opacity:.45;transform:translateX(9%)}to{opacity:1;transform:none}}@keyframes bookSlidePrev{from{opacity:.45;transform:translateX(-9%)}to{opacity:1;transform:none}}@keyframes bookFade{from{opacity:.2}to{opacity:1}}
.link-editor-shell{width:min(1440px,calc(100% - 30px))}.link-editor{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(330px,.7fr);gap:20px;align-items:start}.link-preview-card,.link-form-card{padding:18px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 8px 24px rgba(20,30,40,.06)}.link-form-card{position:sticky;top:82px;max-height:calc(100vh - 100px);overflow:auto}.link-form-card h2,.link-form-card h3{margin-top:0}.link-toolbar{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:10px}.link-toolbar label{display:flex;align-items:center;gap:7px;font-size:13px}.link-toolbar input{width:70px;padding:8px;border:1px solid var(--line);border-radius:7px;text-align:center}.editor-help{margin:7px 0 14px;color:var(--muted);font-size:13px;text-align:center}.editor-canvas-wrap{position:relative;display:grid;min-height:420px;place-items:center;overflow:auto;padding:12px;background:#313b43;border-radius:10px}.editor-canvas-wrap canvas{display:block;max-width:none;background:#fff;box-shadow:0 10px 30px #0007}.editor-overlay{position:absolute;z-index:4;touch-action:none;cursor:crosshair}.editor-link-box{position:absolute;margin:0;padding:0;border:2px solid var(--link-color,#16a3a5);background:color-mix(in srgb,var(--link-color,#16a3a5) 17%,transparent);cursor:pointer}.editor-link-box:hover,.editor-link-box.selected{border-width:3px;box-shadow:0 0 0 2px #fff}.editor-link-box.draft{border-style:dashed;pointer-events:none}.range-status{padding:10px 12px;border-radius:8px;background:#eef6f6;color:#315b5c;font-size:12px}.field-grid.compact{grid-template-columns:1fr 1fr}.inner-fields{margin-top:13px}.page-link-list{display:grid;gap:7px}.page-link-item{padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);text-align:left;cursor:pointer}.page-link-item:hover{border-color:var(--accent)}
@media(max-width:980px){.link-editor{grid-template-columns:1fr}.link-form-card{position:static;max-height:none}.link-editor-shell{width:min(100% - 20px,900px)}}
@media(max-width:767px){.heading-actions{width:100%}.link-preview-card,.link-form-card{padding:12px}.editor-canvas-wrap{min-height:300px}.field-grid.compact{grid-template-columns:1fr}.page-hotspot.style-button span{padding:4px 6px;font-size:10px}}
.page-spread{position:relative;transform-style:preserve-3d;perspective:2200px;perspective-origin:center center}.turn-static-page{position:absolute!important;z-index:7;pointer-events:none;box-shadow:0 18px 42px #0008}.turning-leaf{position:absolute;z-index:9;transform-style:preserve-3d;transition:transform var(--turn-speed,720ms) cubic-bezier(.2,.72,.16,1);pointer-events:none;will-change:transform;contain:layout paint;backface-visibility:visible}.turning-leaf.turn-left{transform-origin:left center;transform:translateZ(1px) rotateY(0deg)}.turning-leaf.turn-left.is-turning{transform:translateZ(1px) rotateY(-180deg)}.turning-leaf.turn-right{transform-origin:right center;transform:translateZ(1px) rotateY(0deg)}.turning-leaf.turn-right.is-turning{transform:translateZ(1px) rotateY(180deg)}.leaf-face{position:absolute;inset:0;overflow:hidden;background:#fff;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(.1px)}.leaf-back{transform:rotateY(180deg) translateZ(.1px)}.leaf-snapshot,.leaf-snapshot canvas{display:block;width:100%!important;height:100%!important}.turning-leaf:after{content:"";position:absolute;z-index:4;inset:0;backface-visibility:hidden;background:linear-gradient(90deg,rgba(0,0,0,.24),transparent 22%,transparent 68%,rgba(0,0,0,.14));opacity:0;transition:opacity 280ms ease}.turning-leaf.is-turning:after{opacity:.62}.leaf-turning .page-link-layer{pointer-events:none}.leaf-turning .page-hotspot{pointer-events:none}.page-frame{cursor:default}.page-frame:first-child{cursor:w-resize}.page-frame:last-child{cursor:e-resize}
.page-hotspot.is-blinking{animation:linkPulse 1.15s ease-in-out infinite;opacity:1}.links-invisible .page-hotspot.is-blinking,.links-hover .page-hotspot.is-blinking{border-width:3px}@keyframes linkPulse{0%,100%{opacity:.2;box-shadow:0 0 0 0 color-mix(in srgb,var(--link-color,#16a3a5) 65%,transparent)}50%{opacity:1;box-shadow:0 0 0 7px transparent;background:color-mix(in srgb,var(--link-color,#16a3a5) 32%,transparent)}}@media(prefers-reduced-motion:reduce){.page-hotspot.is-blinking{animation:none;opacity:1}.turning-leaf{transition-duration:120ms!important}}
@media(max-width:767px){.viewer-main,.stage{width:100%;height:100%;min-height:0}.book-viewport{display:grid;width:100%;height:100%;max-width:none;max-height:none;padding:8px 10px;place-items:center;overflow:auto}.page-spread{min-height:0;margin:auto;align-self:center}.page-arrow{z-index:12;background:#0d151b8c}.page-arrow.prev{left:2px}.page-arrow.next{right:2px}}

/* v2.3: readable viewer navigation and table of contents */
.viewer-app{grid-template-rows:64px minmax(0,1fr) 48px}
.viewer-bar{gap:14px;padding:8px 14px}
.viewer-actions{align-items:center;gap:6px}
.toolbar-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:68px;height:44px;padding:0 11px;border:1px solid #3a4a55;border-radius:9px;background:#202c34;color:#fff;font:inherit;text-decoration:none;cursor:pointer;transition:border-color .16s,background .16s,transform .16s}
.toolbar-button span{font-size:17px;line-height:1}.toolbar-button b{font-size:12px;white-space:nowrap}.toolbar-button.compact{min-width:58px;padding:0 8px}.toolbar-button:hover,.toolbar-button:focus-visible,.toolbar-button.active{border-color:#43c4c5;background:#29424a;outline:none}.toolbar-button:active{transform:translateY(1px)}
.mobile-menu-toggle,.mobile-nav-button{display:none}
.viewer-main{grid-template-columns:auto auto auto minmax(0,1fr)}
.side-panel{width:0;min-width:0;overflow:hidden;background:#11191f;border-right:1px solid #2c3942;transition:width .22s ease;z-index:16}
.side-panel.open{width:300px}.panel-heading{display:flex;align-items:center;justify-content:space-between;width:300px;height:55px;padding:9px 12px 9px 17px;border-bottom:1px solid #2c3942}.panel-heading strong{font-size:15px}.panel-heading button{display:grid;width:36px;height:36px;padding:0;place-items:center;border:1px solid #40505c;border-radius:8px;background:#202b33;color:#fff;font-size:22px;cursor:pointer}
.thumb-panel,.thumb-panel.open{transition:width .22s ease}.thumb-list{width:300px;height:calc(100% - 55px);padding:13px 16px}.thumb-button{margin-bottom:12px}.thumb-button canvas{max-width:150px;max-height:180px}.thumb-button span{font-size:12px}
.toc-list{width:300px;height:calc(100% - 55px);overflow:auto;padding:10px 12px 24px}.toc-group{margin:15px 7px 7px;color:#77d2d2;font-size:11px;font-weight:800;letter-spacing:.1em}.toc-entry{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:58px;padding:10px 10px 10px 12px;border:1px solid transparent;border-radius:9px;background:transparent;color:#fff;text-align:left;cursor:pointer}.toc-entry:hover,.toc-entry:focus-visible,.toc-entry.active{border-color:#3b5962;background:#1d2c34;outline:none}.toc-entry.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:#3ec2c3}.toc-entry-copy{display:grid;gap:4px;min-width:0}.toc-entry-copy strong{font-size:13px;line-height:1.4}.toc-entry-copy small{color:#9aaab4;font-size:11px;line-height:1.4}.toc-entry-meta{display:grid;justify-items:end;gap:4px;color:#a9b7c0;font-size:10px;white-space:nowrap}.toc-entry-meta b{padding:2px 5px;border-radius:99px;background:#e65359;color:#fff;font-size:9px}.toc-empty{padding:22px 15px;color:#9eabb4;font-size:13px;line-height:1.7}.toc-entry.is-blinking{animation:tocPulse 1.4s ease-in-out infinite}
.viewer-footer{padding:6px 18px}.mobile-menu-sheet{display:none}
.help-overlay{position:fixed;z-index:100;inset:0;display:grid;padding:20px;place-items:center;background:#081017c9;backdrop-filter:blur(5px)}.help-overlay[hidden]{display:none}.help-card{position:relative;width:min(620px,100%);padding:30px;border:1px solid #dbe4e8;border-radius:20px;background:#fff;color:var(--ink);box-shadow:0 25px 80px #0008}.help-close{position:absolute;top:13px;right:13px;display:grid;width:38px;height:38px;padding:0;place-items:center;border:1px solid var(--line);border-radius:9px;background:#f4f6f7;color:var(--ink);font-size:23px;cursor:pointer}.help-kicker{margin:0 0 5px;color:var(--accent-dark);font-size:11px;font-weight:900;letter-spacing:.16em}.help-card h2{margin:0 0 22px;font-size:25px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.help-grid div{display:grid;grid-template-columns:44px 1fr;gap:2px 10px;min-height:82px;padding:13px;border:1px solid var(--line);border-radius:11px;background:#f8fafb}.help-grid div>span{grid-row:1/3;display:grid;width:42px;height:42px;place-items:center;border-radius:9px;background:#16303b;color:#fff;font-size:20px}.help-grid strong{align-self:end;font-size:14px}.help-grid small{align-self:start;color:var(--muted);font-size:11px;line-height:1.5}.help-done{display:block;min-width:180px;min-height:46px;margin:22px auto 0;border:0;border-radius:10px;background:var(--accent);color:#fff;font:700 14px inherit;cursor:pointer}
@keyframes tocPulse{0%,100%{background:transparent}50%{background:#29454d;box-shadow:inset 0 0 0 1px #58d4d4}}

.toc-admin-shell{width:min(1300px,calc(100% - 32px))}.toc-admin-grid{display:grid;grid-template-columns:minmax(330px,.72fr) minmax(440px,1.28fr);gap:22px;align-items:start}.toc-manage-card{padding:26px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 25px rgba(20,30,40,.05)}.toc-manage-card h2{margin:0}.toc-manage-list{display:grid;gap:9px;margin-top:18px}.toc-manage-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:11px}.toc-order-buttons form{display:grid;gap:4px}.toc-order-buttons button{width:34px;height:29px;border:1px solid var(--line);border-radius:6px;background:#f6f8f9;color:var(--ink);cursor:pointer}.toc-order-buttons button:disabled{opacity:.32}.toc-manage-main{display:grid;gap:3px}.toc-manage-main strong{font-size:14px}.toc-manage-main small,.toc-manage-main>span:last-child{color:var(--muted);font-size:11px}.toc-category{width:max-content;padding:2px 6px;border-radius:99px;background:#e6f5f3;color:#16716f!important;font-size:10px!important;font-weight:800}.toc-manage-actions{display:flex;gap:6px}.toc-manage-actions form{margin:0}.toc-manage-actions .button{min-height:36px;padding:6px 10px;font-size:12px}.empty-mini{margin-top:18px;padding:25px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);text-align:center}

@media(max-width:1100px) and (min-width:768px){.toolbar-button{min-width:44px;padding:0 7px}.toolbar-button b{display:none}.toolbar-button span{font-size:19px}}
@media(max-width:900px){.toc-admin-grid{grid-template-columns:1fr}.toc-manage-card{padding:20px}}
@media(max-width:767px){
  .viewer-app{grid-template-rows:54px minmax(0,1fr) 66px}
  .viewer-bar{padding:7px 9px}.viewer-bar h1{max-width:none;font-size:14px}.viewer-actions{display:none}.mobile-menu-toggle{display:inline-grid;min-width:72px;height:40px;padding:0 10px;place-items:center;border:1px solid #42525e;border-radius:8px;background:#202c34;color:#fff;font:700 12px inherit}
  .viewer-main{position:relative;display:block}.stage{position:absolute;inset:0}.side-panel{position:absolute;z-index:22;top:0;bottom:0;left:0;width:0;box-shadow:none}.side-panel.open{width:min(88vw,350px);box-shadow:15px 0 40px #0009}.panel-heading,.toc-list,.thumb-list{width:min(88vw,350px)}.thumb-list,.toc-list{height:calc(100% - 55px)}
  .book-viewport{padding:6px 8px}.page-arrow{display:none}
  .viewer-footer{z-index:24;display:grid;grid-template-columns:1fr 1fr auto 1fr 1fr;gap:2px;padding:5px 4px;background:#0e171d}.desktop-status{display:none}.mobile-nav-button{display:grid;min-width:0;height:56px;padding:4px 2px;place-items:center;border:0;border-radius:8px;background:transparent;color:#dce5ea;font:700 10px inherit;cursor:pointer}.mobile-nav-button span{font-size:21px;line-height:1}.mobile-nav-button:hover,.mobile-nav-button:focus-visible{background:#24343d;outline:none}.mobile-nav-button:disabled{opacity:.28;cursor:default}.page-control{display:grid;justify-items:center;gap:0;min-width:74px;color:#b9c6ce}.page-control input{width:52px;height:31px;padding:3px;font-size:13px}.page-control span{font-size:10px}
  .mobile-menu-sheet{position:absolute;z-index:23;right:8px;bottom:8px;display:none;grid-template-columns:repeat(3,minmax(82px,1fr));gap:7px;width:min(350px,calc(100% - 16px));padding:11px;border:1px solid #3d4d58;border-radius:14px;background:#111b22;box-shadow:0 15px 45px #000b}.mobile-menu-sheet.open{display:grid}.mobile-menu-sheet button,.mobile-menu-sheet a{display:grid;min-height:66px;padding:7px 4px;place-items:center;border:1px solid #344550;border-radius:9px;background:#202d35;color:#fff;font-family:inherit;font-size:11px;font-weight:700;text-align:center;text-decoration:none}.mobile-menu-sheet span{font-size:20px;line-height:1}
  .help-overlay{padding:12px}.help-card{max-height:calc(100dvh - 24px);overflow:auto;padding:24px 16px 18px}.help-card h2{font-size:21px}.help-grid{grid-template-columns:1fr}.help-grid div{min-height:70px}.help-done{width:100%;margin-top:16px}
  .toc-manage-item{grid-template-columns:42px minmax(0,1fr)}.toc-manage-actions{grid-column:2;justify-content:flex-start}
}
@media(prefers-reduced-motion:reduce){.toc-entry.is-blinking{animation:none;background:#29454d}.side-panel,.toolbar-button{transition:none}}

/* v2.5 pre-generated image pages */
.page-image { display:block; width:100%; height:100%; object-fit:contain; user-select:none; }
.page-pdf-download{position:absolute;z-index:5;right:8px;bottom:8px;display:flex;align-items:center;gap:5px;padding:7px 9px;border-radius:7px;background:rgba(18,38,49,.88);color:#fff;text-decoration:none;font-size:12px;line-height:1;box-shadow:0 2px 8px #0005;cursor:pointer}.page-pdf-download:hover,.page-pdf-download:focus{background:#087f83;outline:2px solid #fff;outline-offset:1px}.download-note{max-width:180px;color:#dce8eb;font-size:11px;line-height:1.25}.mobile-download-note{display:block;padding:10px;color:#52636d;font-size:12px}@media(max-width:767px){.page-pdf-download{right:5px;bottom:5px;padding:6px 7px;font-size:11px}.download-note{display:none}}
.bookmark-list{width:300px;height:calc(100% - 55px);overflow:auto;padding:12px}.bookmark-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;margin-bottom:8px}.bookmark-open,.bookmark-remove{min-height:44px;border:1px solid #3b4a54;border-radius:8px;background:#1d2b33;color:#fff;cursor:pointer}.bookmark-open{display:flex;align-items:center;gap:9px;padding:8px 11px;text-align:left}.bookmark-remove{padding:6px 9px;color:#e9c66c}.bookmark-open:hover,.bookmark-remove:hover{border-color:#e7ba3d;background:#293b44}
/* Small sticky paper above the page edge, with a 44px touch target. */
.page-bookmark-tab{position:absolute;z-index:7;top:-24px;right:0;width:94px;height:44px;padding:0;border:0;background:transparent;color:#665a2d;cursor:pointer;touch-action:manipulation}
.bookmark-paper{position:absolute;top:2px;right:2px;display:grid;place-items:center;width:86px;height:24px;border:1px dashed #a9a394;background:#fff9de;color:#655b38;box-shadow:0 2px 4px #0003;transform:rotate(-2deg);transform-origin:12% 85%;pointer-events:none}
.bookmark-paper b{font-size:10px;line-height:1;font-weight:700}
.bookmark-paper::after{content:"";position:absolute;right:-1px;bottom:-1px;width:8px;height:8px;background:linear-gradient(135deg,#f3d769 50%,#252e34 51%);box-shadow:-1px -1px 2px #0002}
.page-bookmark-tab.active .bookmark-paper{border:1px solid #d9b54b;background:#ffe17a;color:#49380e;box-shadow:0 3px 5px #0004}
.page-bookmark-tab:hover .bookmark-paper{filter:brightness(1.04)}
.page-bookmark-tab:focus-visible{outline:2px solid #fff;outline-offset:1px;border-radius:3px}
.page-bookmark-tab.is-pasting .bookmark-paper{animation:pasteBookmark 420ms cubic-bezier(.2,.8,.3,1)}
.page-bookmark-tab.is-peeling .bookmark-paper{animation:peelBookmark 300ms ease-out}
@keyframes pasteBookmark{0%{opacity:.2;transform:translate(12px,-18px) rotate(18deg) scale(1.18);box-shadow:0 12px 15px #0006}70%{opacity:1;transform:translate(0,1px) rotate(-5deg) scale(.97)}100%{opacity:1;transform:rotate(-2deg)}}
@keyframes peelBookmark{0%{background:#ffe17a;transform:rotate(-2deg);opacity:1}55%{background:#ffe17a;transform:translate(10px,-12px) rotate(15deg);opacity:0}56%{opacity:0;transform:rotate(-2deg)}100%{opacity:1;transform:rotate(-2deg)}}
.leaf-turning .page-bookmark-tab{pointer-events:none}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0;padding:0;border:0}

.book-viewport{padding-top:28px}
@media(max-width:767px){
  .book-viewport{position:absolute;inset:0;height:100%;padding:26px 12px 4px;align-self:start}
  .bookmark-list{width:min(88vw,350px)}
}
@media(prefers-reduced-motion:reduce){.page-bookmark-tab .bookmark-paper{animation:none!important}}
.leaf-snapshot img { display:block; width:100%; height:100%; object-fit:contain; }
.thumb-button img { display:block; width:100%; height:auto; min-height:90px; object-fit:contain; }
.cover-image { display:block; width:100%; height:100%; object-fit:contain; background:white; }

/* Favorites with personal memos. */
.bookmark-item{display:block;padding:8px;border:1px solid #3b4a54;border-radius:9px;background:#1a2830}
.bookmark-heading{display:flex;align-items:center;gap:5px}
.bookmark-open{flex:1;min-width:0;border:0;padding:6px 4px;font-family:inherit;font-size:13px;font-weight:700}
.bookmark-edit{min-height:44px;padding:5px 7px;border:1px solid #3b4a54;border-radius:7px;background:#263742;color:#edf4f8;font-family:inherit;font-size:11px;font-weight:700;cursor:pointer}
.bookmark-remove{padding:5px 7px;font-family:inherit;font-size:11px;font-weight:700}
.bookmark-memo{margin:8px 4px 4px;color:#e2eaf0;font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.bookmark-memo.empty{color:#9eafb9;font-size:11px}
.favorite-overlay{z-index:110}
.favorite-card{width:min(520px,100%);max-height:calc(100dvh - 24px);overflow:auto}
.favorite-card h2{padding-right:24px;margin-bottom:18px;font-size:22px}
.favorite-card label{display:block;margin-bottom:8px;font-size:14px;font-weight:700}
.favorite-card label small{margin-left:5px;font-weight:400}
.favorite-card textarea{display:block;width:100%;min-height:110px;max-height:40dvh;resize:vertical;padding:12px;border:1px solid #b7c4cd;border-radius:8px;background:#fff;color:#1b2933;font-family:inherit;font-size:16px;line-height:1.6}
.favorite-card textarea:focus{outline:3px solid #16a3a529;border-color:var(--accent)}
.favorite-count{margin:6px 0;text-align:right;color:var(--muted);font-size:11px}
.favorite-privacy{margin:10px 0 16px;color:var(--muted);font-size:12px;line-height:1.6}
.favorite-form-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.favorite-form-actions .button{min-height:44px;padding:8px 12px;font-size:12px}
.favorite-form-actions [hidden]{display:none!important}
@media(max-width:767px){.favorite-card{padding:22px 16px 18px}.favorite-card h2{font-size:20px}.favorite-form-actions .primary{flex:1}.bookmark-paper b{font-size:10px}}

/* Navigation buttons follow the visible page image rather than the stage margin. */
.page-frame .page-arrow{display:grid;place-items:center;z-index:6;top:50%;width:44px;height:54px;padding:0;transform:translateY(-50%);border:1px solid #ffffff75;border-radius:8px;background:#0d151b8c;color:#fff;font:400 30px/1 sans-serif;text-shadow:0 1px 3px #0008;box-shadow:0 2px 8px #0003;touch-action:manipulation;cursor:pointer}
.page-frame .page-arrow.prev{left:5px;right:auto}
.page-frame .page-arrow.next{right:5px;left:auto}
.page-arrow[hidden]{display:none!important}
.page-frame .page-arrow:focus-visible{outline:2px solid #ffe17a;outline-offset:2px}
.leaf-turning .page-frame .page-arrow{visibility:hidden;pointer-events:none}
@media(max-width:767px){.page-frame .page-arrow{width:44px;height:48px;font-size:28px}.page-frame .page-arrow.prev{left:3px}.page-frame .page-arrow.next{right:3px}}

.backup-card{line-height:1.7}.backup-card progress{display:block;width:100%;height:18px;accent-color:var(--accent)}.backup-controls{margin:18px 0}.backup-controls [hidden]{display:none!important}.backup-note{font-size:12px;color:var(--muted)}

/* Publication checks and page sharing */
.preflight-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.preflight-list li{padding:12px;border:1px solid var(--line);border-radius:8px}.preflight-list a{display:block;margin-top:6px;font-size:13px;color:var(--accent-dark)}.preflight-card input[type=checkbox]{width:auto;justify-self:start}.button:disabled{opacity:.5;cursor:not-allowed}
.share-overlay[hidden]{display:none!important}.share-card{width:min(560px,100%);max-height:calc(100dvh - 24px);overflow:auto}.share-card h2{padding-right:25px}.share-card label{display:block;margin:16px 0 6px;font-size:14px;font-weight:700}.share-card input,.share-card select{width:100%;padding:12px;border:1px solid #b7c4cd;border-radius:8px;background:#fff;font:inherit;font-size:16px;color:var(--ink)}.share-card input:focus,.share-card select:focus{outline:3px solid #16a3a529;border-color:var(--accent)}.share-card p{font-size:13px;line-height:1.6}.share-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.share-actions [hidden]{display:none!important}.share-status{min-height:22px;color:var(--accent-dark)}
.video-overlay{z-index:120}.video-overlay[hidden]{display:none!important}.video-card{width:min(920px,100%);max-height:calc(100dvh - 24px);overflow:auto;padding:24px}.video-card h2{padding-right:48px;margin-bottom:18px;overflow-wrap:anywhere}.video-card .help-close{width:44px;height:44px}.video-media{width:100%;aspect-ratio:16/9;background:#000;border-radius:8px;overflow:hidden}.video-media iframe,.video-media video{display:block;width:100%;height:100%;border:0;object-fit:contain}.video-actions{display:flex;gap:10px;flex-wrap:wrap}.video-status,.video-hint{font-size:13px;line-height:1.6}.video-status{min-height:20px;color:var(--accent-dark)}.video-hint{color:var(--muted)}.page-hotspot.video-hotspot{opacity:1!important;padding:0;font:inherit;border-width:2px!important;background:color-mix(in srgb,var(--link-color,#16a3a5) 15%,transparent)}.page-hotspot.video-hotspot span{overflow-wrap:anywhere}.video-editor-hint[hidden]{display:none!important}@media(max-width:767px){.video-card{padding:20px 14px 14px}.video-actions .button{min-height:44px}.video-status,.video-hint{font-size:12px}}@media(max-height:500px) and (orientation:landscape){.video-media{max-height:55dvh}.video-card h2{font-size:18px;margin-bottom:10px}.video-hint{margin-bottom:0}}
/* Center the desktop menu with equal space on both sides. */
@media(min-width:768px){
  .viewer-app{grid-template-rows:minmax(64px,auto) minmax(0,1fr) 48px}
  .viewer-bar{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,auto) minmax(120px,1fr)}
  .viewer-bar>h1{grid-column:1;grid-row:1;width:100%}
  .viewer-bar>a{grid-column:1;grid-row:1;justify-self:start}
  .viewer-bar>a+h1{padding-left:64px}
  .viewer-bar>.viewer-actions{grid-column:2;grid-row:1;min-width:0;flex-wrap:wrap;justify-content:center}
  .viewer-bar>.viewer-actions>.download-note{flex-basis:100%;max-width:none;text-align:center}
}

/* Bookshelf and back-number navigation */
.bookshelf-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;min-width:144px;padding:4px 10px;border-color:#62736f;background:linear-gradient(145deg,#304440,#243630);color:#f7f3e8;white-space:nowrap}.bookshelf-link:hover,.bookshelf-link:focus-visible{border-color:#b9d6b7;background:#36534a;outline:2px solid #b9d6b7;outline-offset:2px}.bookshelf-link>span{display:grid;gap:2px;text-align:left}.bookshelf-link b{font-size:13px;line-height:1.1}.bookshelf-link small{font-size:10px;line-height:1.2;color:#e4eddf}.bookshelf-link svg{flex:none}
.bookshelf-header{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:38px max(24px,6vw) 34px;background:radial-gradient(ellipse at 90% 0,#37635c,transparent 65%),#173d38}.bookshelf-header .eyebrow{color:#c6d5a8;letter-spacing:.24em}.bookshelf-site{margin:0 0 8px;color:#d4e2df;font-size:14px}.bookshelf-header h1{font-size:clamp(30px,4vw,44px);letter-spacing:.04em}.bookshelf-header h1 span{font-size:.55em;font-weight:500;letter-spacing:0}.bookshelf-intro{margin:14px 0 0;color:#e0e9e3;font-size:14px}.bookshelf-count{flex:none;display:grid;justify-items:center;gap:3px;margin:0;padding:18px 22px;border:1px solid #ffffff36;border-radius:16px;color:#e2eadf}.bookshelf-count b{font-size:38px;line-height:1.1;font-weight:500}.bookshelf-count span{font-size:11px}
.bookshelf-shell{width:min(1180px,calc(100% - 36px));margin-top:32px}.bookshelf-cabinet{--shelf-cover-height:300px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 0;padding:24px 12px 28px;border:1px solid #d5c4ae;border-left:9px solid #b69978;border-right:9px solid #b69978;border-radius:14px;background:linear-gradient(90deg,#e8ded0,transparent 8%,transparent 92%,#e8ded0),#f6f1e8;box-shadow:0 16px 38px #4a36271a,0 2px 0 #d2b89b}
.bookshelf-slot{position:relative;min-width:0;display:grid;grid-template-rows:var(--shelf-cover-height) auto}.bookshelf-slot:before{content:"";position:absolute;z-index:2;top:var(--shelf-cover-height);left:0;right:0;height:17px;border-top:2px solid #e5c6a0;border-bottom:3px solid #95704f;background:repeating-linear-gradient(2deg,#ffffff08 0 1px,transparent 1px 5px),linear-gradient(#c6a079,#b98c63);box-shadow:0 8px 12px #4b30232b;pointer-events:none}.bookshelf-cover{display:flex;align-items:flex-end;justify-content:center;height:var(--shelf-cover-height);padding-bottom:1px;text-decoration:none;position:relative;z-index:1}.shelf-volume{position:relative;display:block;width:min(calc(100% - 40px),190px);aspect-ratio:.65;max-height:100%;background:#fff;border-radius:2px 4px 3px 1px;box-shadow:3px 1px 0 #ede8dd,5px 3px 0 #b9a893,10px 10px 18px #2d241c3d;transform-origin:center bottom;transition:transform .2s,box-shadow .2s}.shelf-volume:before{content:"";position:absolute;z-index:1;inset:0 auto 0 0;width:10px;background:linear-gradient(90deg,#0003,#ffffff35 35%,#0000000a 65%,transparent);pointer-events:none}.shelf-volume img{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}.bookshelf-cover:hover .shelf-volume{transform:translateY(-5px) rotate(-1deg);box-shadow:3px 1px 0 #ede8dd,5px 3px 0 #b9a893,12px 16px 22px #2d241c40}.bookshelf-cover:focus-visible{outline:none}.bookshelf-cover:focus-visible .shelf-volume{outline:3px solid #118780;outline-offset:5px}.shelf-fallback{display:flex;flex-direction:column;justify-content:space-between;gap:16px;height:100%;padding:24px 18px;background:linear-gradient(135deg,#183e39,#426f61);color:#fff}.shelf-fallback strong{font-size:18px;line-height:1.5}.shelf-fallback small{color:#e1e9df;font-size:11px}
.bookshelf-info{display:flex;flex-direction:column;align-items:center;min-width:0;padding:31px 16px 16px;text-align:center}.bookshelf-info .book-date{color:#7d6e5e;font-size:11px!important}.bookshelf-info h2{margin:8px 0 10px;font-size:17px;line-height:1.5;color:#283c36}.bookshelf-info>p:not(.book-date){margin:0 0 16px;color:#756f65;font-size:12px;line-height:1.7}.bookshelf-info .button{gap:12px;margin-top:auto;min-height:40px;padding:8px 15px;font-size:12px;background:#26746b;box-shadow:0 2px 0 #1c514a}.bookshelf-info .button:hover{background:#195b53}
@media(min-width:768px){.viewer-bar.viewer-bar-with-library{grid-template-columns:minmax(176px,1fr) minmax(0,auto) minmax(176px,1fr);min-height:84px}.viewer-bar.viewer-bar-with-library>h1{align-self:end;padding-left:0;font-size:12px;line-height:18px}.viewer-bar.viewer-bar-with-library>.bookshelf-link{align-self:start}.viewer-app:has(>.viewer-bar-with-library){grid-template-rows:minmax(84px,auto) minmax(0,1fr) 48px}}
@media(max-width:999px){.bookshelf-cabinet{grid-template-columns:repeat(2,minmax(0,1fr))}.bookshelf-cabinet .shelf-empty-desktop{display:none}}
@media(max-width:767px){.bookshelf-link{min-width:0;height:40px;gap:5px;padding:3px 7px}.bookshelf-link svg{width:18px;height:20px}.bookshelf-link b{font-size:12px}.bookshelf-link small{font-size:9px}.bookshelf-header{padding:30px 20px 27px;align-items:flex-start;gap:14px}.bookshelf-header h1{font-size:30px}.bookshelf-header h1 span{display:block;margin-top:5px;font-size:16px}.bookshelf-site{font-size:12px}.bookshelf-intro{font-size:12px;line-height:1.7;max-width:220px}.bookshelf-count{padding:11px 9px;border-radius:12px}.bookshelf-count b{font-size:28px}.bookshelf-count span{font-size:9px}.bookshelf-shell{width:calc(100% - 24px);margin-top:20px}.bookshelf-cabinet{--shelf-cover-height:215px;padding:20px 5px 22px;border-left-width:6px;border-right-width:6px;border-radius:10px;gap:22px 0}.shelf-volume{width:min(calc(100% - 24px),140px)}.bookshelf-info{padding:28px 10px 12px}.bookshelf-info h2{font-size:14px;line-height:1.5}.bookshelf-info>p:not(.book-date){font-size:11px}.bookshelf-info .button{font-size:11px;padding:8px 10px;gap:7px}.shelf-fallback{padding:15px 10px}.shelf-fallback strong{font-size:14px}}
@media(prefers-reduced-motion:reduce){.shelf-volume{transition:none}.bookshelf-cover:hover .shelf-volume{transform:none}}

.shelf-categories{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 28px}.shelf-categories .button{white-space:normal;text-align:center}

/* Book access report */
.report-filters{display:grid;grid-template-columns:minmax(180px,2fr) minmax(130px,1fr) minmax(130px,1fr) auto;gap:14px;align-items:end}.report-filters label{display:grid;gap:7px;min-width:0}.report-filters select,.report-filters input{width:100%;min-width:0}.report-periods{flex-wrap:wrap;margin:18px 0}.report-heading{margin:26px 0 12px}.report-heading h2{overflow-wrap:anywhere}.report-explanation{line-height:1.8;color:#53646c}.report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.report-metrics .editor-card{margin:0}.report-metrics h3{font-size:14px;font-weight:600;margin:0 0 15px}.report-metrics strong{font-size:clamp(25px,3vw,42px);color:#176b64;overflow-wrap:anywhere}.report-metrics span{margin-left:7px;color:#61717a}.report-chart{display:block;width:100%;height:auto;min-height:130px;max-height:300px;margin:16px 0}.report-chart text{font-family:inherit;font-size:13px;fill:#60717a}.report-table-wrap{overflow-x:auto;max-height:600px}.report-table{border-collapse:collapse;width:100%;font-size:14px}.report-table th,.report-table td{padding:12px 14px;border-bottom:1px solid #e0e6e9;text-align:left}.report-table th{font-weight:600;white-space:nowrap}.report-table td{font-variant-numeric:tabular-nums}.report-table thead th{background:#f3f6f7;position:sticky;top:0}.report-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.access-report details summary{cursor:pointer;padding:12px 0;font-weight:600}.access-report .editor-card h2{font-size:20px}.access-report p{line-height:1.8}@media(max-width:767px){.report-filters{grid-template-columns:1fr 1fr}.report-filters label:first-child{grid-column:1/-1}.report-filters button{grid-column:1/-1}.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-metrics .editor-card{padding:18px 14px}.report-columns{grid-template-columns:1fr}.report-table th,.report-table td{padding:10px}.report-chart text{font-size:15px}}

.export-analytics-options{border:1px solid #d7e1e5;border-radius:12px;padding:20px;display:grid;gap:20px;min-width:0}.export-analytics-options legend{font-weight:700;padding:0 8px}.export-analytics-options label{display:grid;gap:8px}.export-analytics-options label>span{display:flex;gap:9px;align-items:flex-start;font-weight:600}.export-analytics-options input[type=radio]{width:auto;flex:0 0 auto;margin-top:4px}.export-analytics-options small{display:block;line-height:1.7;overflow-wrap:anywhere}.export-analytics-options input[type=text]{width:100%;min-width:0}

.replacement-comparison{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.replacement-comparison figure{margin:0;min-width:0;background:#eef2f4;border-radius:10px;padding:10px}.replacement-comparison figcaption{font-weight:700;text-align:center;padding:4px 0 12px}.replacement-comparison img{display:block;width:100%;height:auto;object-fit:contain}#replacementProgress{width:100%}#replacementPreview label{display:flex;gap:9px;align-items:flex-start;line-height:1.7}#replacementPreview input[type=checkbox]{width:auto;flex:0 0 auto;margin-top:6px}@media(max-width:767px){.replacement-comparison{grid-template-columns:1fr}}

.replacement-preview-page{position:relative}.replacement-link-overlay{position:absolute;inset:0;pointer-events:none}.replacement-link-box{position:absolute;display:flex;align-items:flex-start;border:2px solid #0c867e;background:#16a3a522;color:#094a46;font-size:10px;overflow:hidden;box-sizing:border-box;pointer-events:none}
/* Video targets stay transparent; only the optional play icon covers the page. */
.page-hotspot.video-hotspot,.page-hotspot.video-hotspot:hover,.page-hotspot.video-hotspot:focus{margin:0;padding:0;border:0!important;background:transparent!important;box-shadow:none!important;opacity:1!important;animation:none!important;outline:none;font:inherit}
.page-hotspot.video-hotspot:focus-visible{outline:2px solid var(--link-color,#16a3a5);outline-offset:2px}
.video-hotspot .video-play-icon{display:grid;place-items:center;width:min(32px,100%);height:min(32px,100%);padding:0;border-radius:50%;background:var(--link-color,#16a3a5);color:#fff;font:14px/1 sans-serif;box-shadow:0 1px 4px #0005;pointer-events:none}
.video-hotspot.is-blinking .video-play-icon{animation:videoIconPulse 1.15s ease-in-out infinite}
@keyframes videoIconPulse{0%,100%{opacity:.45}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.video-hotspot.is-blinking .video-play-icon{animation:none}}
#videoIconSetting{display:block}#videoIconSetting small{display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.6}

/* 360-degree dialog and optional icon. The selected page area stays transparent. */
.panorama-overlay{z-index:125}.panorama-overlay[hidden],.panorama-editor-setting[hidden]{display:none!important}
.panorama-card{width:min(1100px,100%);max-height:calc(100dvh - 24px);overflow:auto;padding:24px}
.panorama-card h2{padding-right:48px;margin-bottom:14px;overflow-wrap:anywhere}.panorama-card .help-close{width:44px;height:44px}
.panorama-media{width:100%;height:clamp(220px,52dvh,620px);background:#17282d;border-radius:8px;overflow:hidden}
.panorama-media canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:-3px}.panorama-media canvas:active{cursor:grabbing}
.panorama-actions{display:flex;gap:8px;flex-wrap:wrap}.panorama-actions .button{min-width:44px;min-height:44px}
.panorama-status,.panorama-hint{font-size:13px;line-height:1.6}.panorama-status{min-height:20px;color:var(--accent-dark)}.panorama-hint{color:var(--muted)}
.page-hotspot.panorama-hotspot,.page-hotspot.panorama-hotspot:hover,.page-hotspot.panorama-hotspot:focus{margin:0;padding:0;border:0!important;background:transparent!important;box-shadow:none!important;opacity:1!important;animation:none!important;outline:none;font:inherit}
.page-hotspot.panorama-hotspot:focus-visible{outline:2px solid var(--link-color,#16a3a5);outline-offset:2px}
.panorama-hotspot .panorama-icon{display:grid;place-items:center;width:min(44px,100%);height:min(32px,100%);border-radius:16px;background:var(--link-color,#16a3a5);color:#fff;font:bold 12px/1 sans-serif;box-shadow:0 1px 4px #0005;pointer-events:none}
.panorama-hotspot.is-blinking .panorama-icon{animation:videoIconPulse 1.15s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.panorama-hotspot.is-blinking .panorama-icon{animation:none}}
@media(max-width:767px){.panorama-card{padding:20px 12px 12px}.panorama-media{height:48dvh;min-height:220px}.panorama-card h2{font-size:20px}.panorama-hint{font-size:12px}}
@media(max-height:500px) and (orientation:landscape){.panorama-card{padding:12px}.panorama-media{height:50dvh;min-height:120px}.panorama-card h2{font-size:18px;margin-bottom:8px}.panorama-hint{margin-bottom:0}}
