:root{--ffv-accent:#e63946;--ffv-bg:#e8e8e8;--ffv-header-bg:#ffffff;--ffv-text:#1a1a2e;--ffv-border:#d0d0d0}.ffv-theme-dark{--ffv-bg:#1a1a2e;--ffv-header-bg:#16213e;--ffv-text:#eaeaea;--ffv-border:#2a2a4a}.ffv-toolbar-wrap{width:100%;background:var(--ffv-header-bg);border-bottom:1px solid var(--ffv-border);display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 14px;box-shadow:0 2px 6px rgba(0,0,0,8%);box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,sans-serif;color:var(--ffv-text);position:relative;z-index:100}.ffv-viewer-pages{width:100%;background:var(--ffv-bg);font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,sans-serif;color:var(--ffv-text);box-sizing:border-box;touch-action:pan-x pan-y}.ffv-viewer-wrap{width:100%;background:var(--ffv-bg);border:1px solid var(--ffv-border);border-radius:8px;box-shadow:0 4px 24px rgba(0,0,0,.1);font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,sans-serif;color:var(--ffv-text);box-sizing:border-box;touch-action:pan-x pan-y}.ffv-header{background:var(--ffv-header-bg);border-bottom:1px solid var(--ffv-border);display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 14px;box-shadow:0 2px 6px rgba(0,0,0,8%);box-sizing:border-box;border-radius:8px 8px 0 0;position:relative;z-index:100}.ffv-store-logo{height:34px;width:auto;object-fit:contain}.ffv-store-name{font-weight:700;font-size:1rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ffv-has-tabs .ffv-store-name{flex:initial}.ffv-has-tabs{flex-wrap:nowrap}.ffv-has-tabs .ffv-header-actions,.ffv-has-tabs .ffv-page-counter{flex:none;flex-wrap:nowrap}.ffv-tabs{display:flex;align-items:stretch;gap:4px;flex:initial;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;touch-action:pan-x;scrollbar-width:none}.ffv-tabs::-webkit-scrollbar{display:none}.ffv-tab{flex:none;scroll-snap-align:start;display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:0 0;border:none;border-bottom:2px solid transparent;border-radius:0;padding:4px 10px 5px;cursor:pointer;color:var(--ffv-text);font-family:inherit;text-align:left;white-space:nowrap;opacity:.65;transition:opacity .15s,border-color .15s,color .15s}.ffv-tab:hover{opacity:1}.ffv-tab.active{opacity:1;color:#fff;background:var(--ffv-accent);border-radius:6px 6px 0 0;border-bottom-color:var(--ffv-accent)}.ffv-tab.active .ffv-tab-label{font-weight:800}.ffv-tab.active .ffv-tab-dates{color:#fff;opacity:.85}.ffv-tab.active .ffv-tab-preview{background:#fff;color:var(--ffv-accent)}.ffv-tab:focus-visible{outline:2px solid var(--ffv-accent);outline-offset:-2px}.ffv-tab-label{font-size:.85rem;font-weight:600;line-height:1.25}.ffv-tab-preview{display:inline-block;background:var(--ffv-accent);color:#fff;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:1px 5px;border-radius:3px;margin-right:5px;vertical-align:1px}.ffv-tab-dates{font-size:.7rem;font-weight:400;opacity:.75;line-height:1.2}.ffv-page-counter{font-size:.85rem;color:var(--ffv-text);opacity:.75;white-space:nowrap;margin-left:auto}.ffv-version-badge{font-size:.72rem;font-weight:700;background:var(--ffv-accent);color:#fff;padding:2px 8px;border-radius:10px;white-space:nowrap;opacity:.85}.ffv-preview-notice{background:#fff3cd;border-left:4px solid #f0ad4e;padding:10px 14px;font-size:.9rem;margin:0 0 8px;border-radius:0 4px 4px 0}.ffv-header-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.ffv-btn{background:0 0;border:1px solid var(--ffv-border);border-radius:5px;padding:5px 10px;cursor:pointer;font-size:.83rem;color:var(--ffv-text);white-space:nowrap;line-height:1.4;transition:background .15s,color .15s,border-color .15s}.ffv-btn:hover{background:var(--ffv-accent);color:#fff;border-color:var(--ffv-accent)}.ffv-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;padding:40px 20px}.ffv-spinner{width:44px;height:44px;border:4px solid var(--ffv-border);border-top-color:var(--ffv-accent);border-radius:50%;animation:ffv-spin .75s linear infinite;margin-bottom:12px}@keyframes ffv-spin{to{transform:rotate(360deg)}}.ffv-scroll-outer{width:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;background:var(--ffv-bg);touch-action:pan-x pan-y}.ffv-pages-container{display:inline-block;min-width:100%;background:var(--ffv-bg);vertical-align:top;touch-action:pan-x pan-y}.ffv-page-wrap{position:relative;display:block;line-height:0;margin-bottom:4px;background:#fff;touch-action:pan-x pan-y}.ffv-page-wrap:last-child{margin-bottom:0}.ffv-canvas{display:block;touch-action:pan-x pan-y}.ffv-header-spacer{display:none;flex-shrink:0}.ffv-header-spacer.ffv-spacer-active{display:block}.ffv-thumbnail-strip{background:var(--ffv-header-bg);border-top:1px solid var(--ffv-border);overflow-x:auto;-webkit-overflow-scrolling:touch}.ffv-thumbnails{display:flex;gap:8px;padding:10px 12px;min-width:max-content}.ffv-thumb{display:flex;flex-direction:column;align-items:center;cursor:pointer;opacity:.55;transition:opacity .15s;outline:2px solid transparent;outline-offset:2px;border-radius:3px}.ffv-thumb:hover,.ffv-thumb.active{opacity:1;outline-color:var(--ffv-accent)}.ffv-thumb canvas{display:block;max-height:72px;width:auto}.ffv-thumb-num{font-size:10px;color:var(--ffv-text);margin-top:3px}.ffv-footer{background:var(--ffv-header-bg);border-top:1px solid var(--ffv-border);display:flex;align-items:center;justify-content:space-between;padding:7px 14px;font-size:.8rem;color:var(--ffv-text)}.ffv-valid-dates{font-style:italic;opacity:.7}.ffv-share-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:500;display:flex;align-items:center;justify-content:center}.ffv-share-modal[hidden]{display:none}.ffv-share-modal-inner{background:#fff;border-radius:10px;padding:28px 24px;max-width:380px;width:90%;position:relative;color:#1a1a2e;box-shadow:0 8px 40px rgba(0,0,0,.22)}.ffv-share-close{position:absolute;top:12px;right:14px;background:0 0;border:none;font-size:1.2rem;cursor:pointer;color:#888}.ffv-share-modal-inner h3{margin:0 0 14px;font-size:1.1rem}.ffv-share-url{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:.88rem;margin-bottom:10px;box-sizing:border-box}.ffv-btn-copy-url{width:100%;padding:10px;background:var(--ffv-accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600}.ffv-viewer-pages:fullscreen,.ffv-viewer-wrap:fullscreen{overflow-y:auto!important;overflow-x:auto!important;height:100vh!important;background:var(--ffv-bg,#e8e8e8)!important}.ffv-viewer-pages:-webkit-full-screen,.ffv-viewer-wrap:-webkit-full-screen{overflow-y:auto!important;overflow-x:auto!important;height:100vh!important;background:var(--ffv-bg,#e8e8e8)!important}.ffv-pseudo-fullscreen{position:fixed!important;inset:0!important;width:100%!important;height:100%!important;max-height:100%!important;margin:0!important;z-index:100000!important;overflow-y:auto!important;overflow-x:auto!important;background:var(--ffv-bg,#e8e8e8)!important}body.ffv-pseudo-fullscreen-lock{overflow:hidden!important}.ffv-pseudo-fullscreen-close{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:100001;width:36px;height:36px;border:none;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:1.1rem;line-height:1;cursor:pointer}.ffv-not-active,.ffv-expired{padding:24px;text-align:center;color:#888;font-style:italic}@media(max-width:640px){.ffv-btn{padding:4px 7px;font-size:.76rem}.ffv-thumb canvas{max-height:52px}.ffv-has-tabs{flex-wrap:wrap}.ffv-has-tabs .ffv-tabs{order:-1;flex-basis:100%;width:100%;margin:-10px -14px 4px;padding:2px 14px 0;border-bottom:1px solid var(--ffv-border)}.ffv-tab-is-preview .ffv-tab-preview{display:block;margin:0 0 2px}}@media print{body *{visibility:hidden!important}.ffv-viewer-pages,.ffv-viewer-pages *,.ffv-viewer-wrap,.ffv-viewer-wrap *{visibility:visible!important}.ffv-viewer-pages,.ffv-viewer-wrap{position:fixed!important;left:0;top:0;width:100%!important;margin:0!important;border:none!important;box-shadow:none!important}.ffv-header,.ffv-header-spacer,.ffv-thumbnail-strip,.ffv-footer,.ffv-toolbar-wrap,.ffv-tabs,.ffv-loading,.ffv-page-heat,.ffv-share-modal,.ffv-pseudo-fullscreen-close{display:none!important}.ffv-scroll-outer{overflow:visible!important}.ffv-page-wrap{page-break-after:always;margin:0}.ffv-page-wrap:last-child{page-break-after:auto}}