body.viewer-shell{margin:0;width:100vw;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;background-color:#f8fafc;color:#0f172a;display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:none;touch-action:none;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0);padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0)}.viewer-main{flex:1;display:flex;justify-content:center;align-items:stretch;max-width:none;width:100%;margin:0;height:100%;min-height:100%;padding:0;position:relative;overflow:hidden}.viewer-menu{position:fixed;top:max(18px,calc(env(safe-area-inset-top,0) + 12px));right:max(18px,calc(env(safe-area-inset-right,0) + 12px));z-index:1000;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.viewer-menu__toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:18px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:#ffffffeb;cursor:pointer;box-shadow:0 10px 22px #94a3b82e;border:1px solid rgba(148,163,184,.35);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}.viewer-menu__toggle:hover,.viewer-menu__toggle:focus-visible{transform:translateY(-1px);box-shadow:0 16px 30px #94a3b838;background:#fffffffa;border-color:#3b82f666}.viewer-menu__toggle:focus-visible{outline:3px solid rgba(59,130,246,.35);outline-offset:2px}.viewer-menu__icon{position:relative;width:20px;height:14px;display:inline-flex;flex-direction:column;justify-content:space-between}.viewer-menu__icon span{display:block;width:100%;height:2px;border-radius:999px;background:#1e293b8c;transition:background .2s ease}.viewer-menu__toggle:hover .viewer-menu__icon span,.viewer-menu__toggle:focus-visible .viewer-menu__icon span{background:#1e40af8c}.viewer-menu__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.viewer-menu__panel{min-width:220px;background:#fffffff5;border-radius:18px;border:1px solid rgba(148,163,184,.28);box-shadow:0 24px 44px #94a3b840;padding:16px;display:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.viewer-menu__panel.is-open{display:block}.viewer-menu__heading{margin:0 0 12px;font-size:15px;font-weight:700;color:#334155;letter-spacing:.2px}.viewer-menu__list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.viewer-menu__list a{display:block;padding:9px 12px;border-radius:12px;font-weight:600;color:#475569;background:#f1f5f9cc;border:1px solid transparent;transition:background .2s ease,border-color .2s ease,transform .2s ease,color .2s ease}.viewer-menu__list a:hover,.viewer-menu__list a:focus-visible{background:#dbeafed9;border-color:#94a3b873;transform:translate(2px);color:#1d4ed8;outline:none}.viewer-menu__footer{margin-top:12px;font-size:12px;color:#94a3b8;text-align:right}.viewer-menu__control-group{display:grid;gap:10px;padding:12px 0 4px;border-top:1px solid rgba(148,163,184,.2);margin-top:10px}.viewer-menu__control-title{font-size:13px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.08em}.viewer-menu__control-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.viewer-menu__control-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(148,163,184,.35);background:#f8fafce6;color:#1e293b;border-radius:10px;padding:6px 12px;font-weight:600;font-size:13px;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .2s ease,color .2s ease,box-shadow .2s ease}.viewer-menu__control-button:hover,.viewer-menu__control-button:focus-visible{background:#dbeafed9;border-color:#3b82f666;color:#1d4ed8;box-shadow:0 8px 18px #94a3b82e;transform:translateY(-1px);outline:none}.viewer-menu__control-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.viewer-menu__control-button.is-active{background:#bfdbfee6;border-color:#2563eb80;color:#1d4ed8;box-shadow:0 10px 20px #2563eb26}.viewer-menu__control-value{font-size:13px;font-weight:700;color:#334155;border:1px solid rgba(148,163,184,.35);background:#f8fafccc;border-radius:10px;padding:6px 12px;min-width:56px;text-align:center}@media (max-width: 640px){.viewer-menu{top:12px;right:12px}.viewer-menu__toggle{width:40px;height:40px}.viewer-menu__panel{width:min(88vw,260px);padding:14px}}
